我被要求创建一个JOptionPane
程序,该程序使用与用户想要的数量(作为字符串)并将它们加在一起。
我想到了像这样的假:
int Total = 0
for (int i = 0; i<=X.length();i++)
S1
,其中包含从开头到第一个空格的数字S1
转换为数字并将其添加到总计S1
中减去X
,然后开始循环所以,我的问题是从S1
中减去X
。
到目前为止我的代码:
public static void main(String[] args) {
int total = 0;
String x = JOptionPane.showInputDialog("enter nums please");
for (int i = 0; i<=x.length();i++){
String s1 = x.substring (0, x.indexOf(' '));
total += Integer.parseInt(s1);
x = x - s1;
}
JOptionPane.showMessageDialog(null, "the sum is" + total); }
答案 0 :(得分:2)
如果你还没有学习数组,你可以这样实现:
public static void main(String[] args){
int total = 0;
String x = "12 7";
String s1 = x.trim(); //trim the string
while(!s1.isEmpty()){ //loop until s1 is not empty
int index = x.indexOf(' ');//search the index for a whitespace
if(index != -1){ //we found a whitespace in the String !
s1 = s1.substring(0, index); //substract the right number
total += Integer.parseInt(s1);
x = x.substring(index+1).trim(); //update the String x by erasing the number we just added to total
s1 = x; //update s1
} else {
total += Integer.parseInt(s1); //when there is only one integer left in the String
break; //break the loop this is over
}
}
System.out.println(total);
}
答案 1 :(得分:1)
这是对@ZouZou使用的方法的另一种解释,但实际上并没有破坏你的字符串,它会记住它已经看过的地方,并沿着字符串工作
int total = 0;
String inputString = "12 7 8 9 52";
int prevIndex = 0;
int index = 0;
while (index > -1) {
index = inputString.indexOf(' ', prevIndex);
if (index > -1) {
total += Integer.parseInt(inputString.substring(prevIndex, index));
prevIndex = index + 1;
} else {
total += Integer.parseInt(inputString.substring(inputString.lastIndexOf(' ')+1));
break;
}
}
System.out.println(total);
答案 2 :(得分:0)
简单的解决方案
int total = 0;
String x = JOptionPane.showInputDialog("enter nums please");
for (String s : x.split("\\s+")){
total += Integer.parseInt(s);
}
System.out.println(total);
编辑:“无法使用数组” - 然后使用Scanner
扫描String
nextInt()
< / p>
int total = 0;
String x = JOptionPane.showInputDialog("enter nums please");
Scanner scanner = new Scanner(x); // use scanner to scan the line for nextInt()
while (scanner.hasNext()){
total += scanner.nextInt();
}
System.out.println(total);