减去字符串

时间:2013-12-02 15:37:50

标签: java string joptionpane subtraction

我被要求创建一个JOptionPane程序,该程序使用与用户想要的数量(作为字符串)并将它们加在一起。 我想到了像这样的假:

  1. make int Total = 0
  2. 以字符串X
  3. 接收输入
  4. 循环:for (int i = 0; i<=X.length();i++)
    1. 创建另一个字符串S1,其中包含从开头到第一个空格的数字
    2. S1转换为数字并将其添加到总计
    3. S1中减去X,然后开始循环
  5. show total
  6. 所以,我的问题是从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); }
    

3 个答案:

答案 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);