Java 如何将数字字符串拆分为整数数组?

Java 如何将数字字符串拆分为整数数组?,java,arrays,string,split,Java,Arrays,String,Split,如何将包含数字的字符串拆分为int数组,即 String s="12345"; int i[]=new int[5]; i[0]=1; i[1]=2; i[2]=3; i[3]=4; i[4]=5; 我已经试过了 String s="12345"; int i[]=new int[5]; int tem = Integer.parseInt(s); for(int t=0;t<5;t++){ i[4-t]=tem%10; tem=tem/10; } String s=“1234

如何将包含数字的字符串拆分为int数组,即

String s="12345";
int i[]=new int[5]; 
i[0]=1; 
i[1]=2;
i[2]=3; 
i[3]=4; 
i[4]=5;
我已经试过了

String s="12345";
int i[]=new int[5];
int tem = Integer.parseInt(s);
for(int t=0;t<5;t++){
i[4-t]=tem%10;
tem=tem/10;
}
String s=“12345”;
整数i[]=新整数[5];
int tem=整数.parseInt(s);

对于(int t=0;t而言,罪魁祸首是这一行代码:

int tem = Integer.parseInt(s);
当您输入一个超出
int
所能容纳范围的大数字is string时,就会发生溢出,因此,突然之间您使用的数字与字符串中的数字不同

我建议您迭代字符串的每个字符,然后将每个字符转换为整数:

for (char ch: s.toCharArray()) {
    // convert ch to integer, and add to the array.
    intArray[i] = (int)(ch - '0');
    // of course keep incrementing `i`
}

这是因为您的数字不适合整数范围,也不适合长范围。还要注意的是,由于除法和modulas运算符的缘故,您的代码也不会那么有效。相反,您可以始终使用字符串api并将单个字符转换为数字,如下所示:

String s = "73167176531330624919225119674426574742355349194934";
int[] numbers = new int[s.length()];
for (int i = 0; i < s.length(); i++) {
   numbers[i] = s.charAt(i) - '0';
}
System.out.println(Arrays.toString(numbers));
Output:
[7, 3, 1, 6, 7, 1, 7, 6, 5, 3, 1, 3, 3, 0, 6, 2, 4, 9, 1, 9, 2, 2, 5, 1, 1, 9, 6, 7, 4, 4, 2, 6, 5, 7, 4, 7, 4, 2, 3, 5, 5, 3, 4, 9, 1, 9, 4, 9, 3, 4]
String s=“7316717653133062491922511967446574742355349194934”;
int[]number=新的int[s.length()];
对于(int i=0;i
您可以使用

String str=“12345”;
int[]nums=新的int[str.length()];
对于(int i=0;i
您可以简单地使用字符包装类,获取数值并将其添加到in的数组中

        String sample = "12345";

        int[] result = new int[sample.length()];

        for(int i=0;i<result.length;i++)
        {
            result[i] = Character.getNumericValue(sample.charAt(i));
        }
String sample=“12345”;
int[]结果=新的int[sample.length()];

对于(int i=0;i您可以从中遍历字符(
charAt
length
)和
-'0'
。这将为您提供可以存储在
int[]中的数字
。您的解决方案给出了正确答案,但我们不能在此处使用拆分方法吗?“拆分方法”通过表达式拆分字符串。您的字符串只包含数字,因此没有用于拆分的正则表达式。例如,如果您的字符串类似于“1 2 3 4”,则可以使用拆分方法(“”)并将每个新形成的字符串转换为整数。您的解决方案给出了正确答案,但我们不能在这里使用拆分方法吗?当然可以,那么它是什么syntex@piyank:可以,但不需要。
split()
方法通常适用于基于复杂拆分器拆分字符串的情况,其中涉及正则表达式。在这里,由于您只想读取每个字符,因此直接获取字符数组似乎是合适的。字符表示ASCII/unicode数字(如“1”),并从中减去最小的ASCII/unicode数字(例如“0”),则留下数字的对应值,即int 1。
        String sample = "12345";

        int[] result = new int[sample.length()];

        for(int i=0;i<result.length;i++)
        {
            result[i] = Character.getNumericValue(sample.charAt(i));
        }