问题:从屏幕获取用户输入的字符串(如:“数学87分,物理76分,英语96分”),解析出中的成绩,计算总成绩和平均成绩,将结果输出在屏幕上。
此代码无法解析出字符串中的成绩,不知道错在哪里,或者是用错了函数?
public class t1 {
public static void main(String[] args) {
String str = "love23nex8889e";
str = str.trim();
String str2 = "";
if (str != null && !"".equals(str)) {
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) >= 48 && str.charAt(i) <= 57) {
str2 += str.charAt(i);
}
}
}
System.out.println(str2);
}
}
可以封窗成一个方法,传入每次的str:
运行结果:
public class TestExtractNum {
public static void main(String[] args) {
String str = "hate45bef9990f";
str = str.trim();
StringBuilder str2 = new StringBuilder();
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) >= 48 && str.charAt(i) <= 57) {
if (count % 2 == 1) {
str2.append(str.charAt(i)).append(",");
} else {
str2.append(str.charAt(i));
}
}
count++;
if (i == str.length() - 1) {
str2.deleteCharAt(str2.length() - 1);
}
}
System.out.println(str2);
}
}