将字符串转换为int数组

时间:2016-03-31 23:16:39

标签: java arrays

我想知道如何将string转换为int数组。

我创建了一个阅读器,可以从一个文本文件中读取,该文件由两行组成。

  1. 第一行是随机引用,如“狗是红色的”
  2. 第二行是数字。
  3. 我应该将引号中的每个字符保存到char数组中,然后由数字组成的第二行是每个char的订单号,并且当打印出来时那个顺序,它会拼出一个短语。

    我使用.hasNextLine方法首先将两行保存为两个字符串变量。然后,我将第一行转换为char数组,那部分没问题,但我不知道如何将第二部分转换为int数组。

    我调用了包含第二行“numbers”的变量,它包含字符串"6 25 11 32 6 11 44......"

    如何将其转换为int数组?

    非常感谢

2 个答案:

答案 0 :(得分:5)

你可以做一些非常简单的事情:

String[] strArray = input.split(" ");
int[] intArray = new int[strArray.length]; 

for(int i = 0; i < strArray.length; i++) {
    intArray[i] = Integer.parseInt(strArray[i]);
}

此外,您还想使用NumberFormatException块检查try..catch

答案 1 :(得分:3)

如果您的号码由您的帖子中描述的空格分隔,则可以使用String.split()

您可以创建如下所示的方法,将String个整数转换为int[]

public static int[] stringArrayToIntArray(String intString) {
    String[] intStringSplit = intString.split(" "); //Split by spaces
    int[] result = new int[intStringSplit.length]; //Used to store our ints

    for (int i = 0; i < intStringSplit.length; i++) {
        //parse and store each value into int[] to be returned
        result[i] = Integer.parseInt(intStringSplit[i]); 
    }
    return result;
}

可以这样称呼:

public static void main(String[] args) {

    String intString = "6 25 11 32 6 11 44"; //Original String

    int[] intArray = stringArrayToIntArray(intString); //Call our method

}

如果您要遍历intArray并使用以下内容打印每个值:

    for (int i : intArray) {
        System.out.println(i);
    }

你得到的结果是:

  

运行:
      6
      25
      11
      32
      6
      11
      44
      建立成功(总时间:0秒)

干杯!