java - 拆分字符串并将其放在 int 数组中

标签 java arrays string int

我必须输入一个带有数字的字符串,例如:1,2,3,4,5。 这是输入的一个样本,然后我必须把它放在一个 INT 数组中,这样我就可以对其进行排序,但它并没有按照它应该工作的方式工作。

package array;

import java.util.Scanner;

public class Array {

    public static void main(String[] args) {
        String input;
        int length, count, size;
        Scanner keyboard = new Scanner(System.in);
        input = keyboard.next();
        length = input.length();
        size = length / 2;
        int intarray[] = new int[size];
        String strarray[] = new String[size];
        strarray = input.split(",");

        for (count = 0; count < intarray.length ; count++) {
            intarray[count] = Integer.parseInt(strarray[count]);
        }

        for (int s : intarray) {
            System.out.println(s);
        }
    }
}

最佳答案

对于输入 1,2,3,4,5,输入的长度为 9。整数数学中的 9/2 = 4,因此您只存储前四个变量,而不是全部 5 个。

即使你修复了这个问题,如果你传入 10,11,12,13

的输入,它也会严重崩溃

如果你使用 1,2,3,4,50 作为输入,它会起作用(偶然),奇怪的是:-)

你最好做这样的事情

String[] strArray = input.split(",");
int[] intArray = new int[strArray.length];
for(int i = 0; i < strArray.length; i++) {
    intArray[i] = Integer.parseInt(strArray[i]);
}

为了将来引用,当您遇到错误时,我强烈建议您将其与代码一起发布。您可能没有现成的 jdk 来编译代码来调试它! :)

关于java - 拆分字符串并将其放在 int 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8348591/

相关文章:

arrays - 给定一个整数数组,在线性时间和常量空间中找到第一个缺失的正整数

c++ - 如何在 C++ 中正确读取欧洲字符(从文件和命令 shell)?

python - 在 Python 中将字符串转换为 boolean 值

javascript - insert 语句期间的字符串连接问题

java - 第二个 Activity 出错 "cannot be resolved or not a field"

Java-对 int 数组进行排序

java - 节页面适配器 getCurrentItem 标题

arrays - 无法索引到空数组

java - 标准 Hamcrest 匹配器检查集合是否为空或 null?

java - 使用 Makefile 编译 .jrxml 设计以获取 .jasper 文件