正确代码奉上
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner read = new Scanner(System.in);
int jishu = 0; //用来计数分成几部分
String s = read.nextLine();
for(int i=0 ; i<s.length() ; i++) {
if(s.charAt(i)==';')
jishu ++ ;
}
String shuzu[] = s.split(";",jishu+1);
int num = 0; //用来存储总价格
for(int i=0 ; i<shuzu.length ; i++) {
System.out.println(shuzu[i]);
}
for(int i=0 ; i<shuzu.length ; i++) {
for(int j=0 ; j<shuzu[i].length() ; j++) {
if(shuzu[i].charAt(j)>='0'&&shuzu[i].charAt(j)<='9') { //找到字符串数组中的第一个数字字符
num += (shuzu[i].charAt(j)-'0')*10+(shuzu[i].charAt(j)-'0');//将字符类型转化成数字
break; //找到第一个数组字符就退出一重循环
}
}
}
System.out.println("总价格为"+num);
}
}
题目简介
学生思路
这一题学生使用数组来求解的。
(这一题学生解法具有特殊性,只适用于如如样例的类型
:Java程序设计:34 ;Web程序设计: 56;JSP程序设计:20)
细节要点
- 利用split方法,将输入的字符串变成字符串数组
- 利用.charAt()方法来找到字符串数组中的数字字符
- 而且只用找到第一个数字字符,就利用break退出一重循环
- 利用字符-‘0’ // 将字符变成数字
ending
若哪位同学有不理解的地方,可以在评论区留言,我看到后👀会及时回复的;
若学生的代码和解释有不正确的地方,还望大佬指正,我会及时更正,感谢🙏。