Java:无法从 String 转换为 int

标签 java string parsing

这段代码有什么问题?它说无法从 String 转换为 int,但我已经转换了它。

public static void main(String[] args) {

    String x = JOptionPane.showInputDialog(null, "Hur många värden haver du?");

    int i = Integer.parseInt(x);

    for (int y = 0; i >= y; y++) {
        String z = JOptionPane.showInputDialog(null, "Skriv in värdet");
        int sum = Integer.parseInt(z);
        sum = (sum + z);
    }
}

最佳答案

否,您已将 z 转换为 int 并将结果存储在 sum 中,因此 sum z 的 >int 值,但 z 仍然是 String 类型的变量。您在这里尝试执行的操作与将总和乘以二相同。

但我假设您想要对所有输入值求和,因此您可以执行 sum = (sum + Integer.parseInt(z)); 并放置 sum 在循环之外,否则您将在每次迭代时初始化它。另一个错误是,如果您输入x,它将迭代x + 1次,因为i >= y。下面的修复版本。

    String x = JOptionPane.showInputDialog(null, "Hur många värden haver du?");

    int i = Integer.parseInt(x);
    int sum = 0;
    for (int y = 0; i > y; y++) 
    {
        String z = JOptionPane.showInputDialog(null, "Skriv in värdet");
        sum = (sum + Integer.parseInt(z));
    }
    System.out.println(sum);
<小时/>
Input: 3 (number of iterations)
Input: 7
Input: 5
Input: 6
Output: 18

关于Java:无法从 String 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32396578/

相关文章:

c++ - 如何打开用户输入的文件名?

C:将字符串数组分成单个单词

c++ - 具有可变浮点精度的 CString.Format

阅读文本的算法或模式

java - 在 Wicket 口中创建带有循环的链接列表

Java AWT 矩形交集

java - 如何从 java 调用带有标志/开关的 shell 脚本

Java - 静态方法上的可重入 WriteLock

java - 使用 Java 解析 HTML "style"属性

javascript - 在Loadrunner中解析json响应