【问题标题】:How to convert a String into an Integer[] array in Java? [duplicate]如何在 Java 中将 String 转换为 Integer[] 数组? [复制]
【发布时间】:2019-05-10 17:05:18
【问题描述】:

如果String 类似于"19 35 91 12 36 48 59" 并且我想要一个相同结构的数组。

我已经试过了

array[]=Integer.parseInt(str);

【问题讨论】:

  • Java API 中没有单一的方法可以做到这一点。在空间上吐出字符串,检查你有多少元素,创建 int 数组,迭代令牌,解析它们并放入 int 数组。
  • 你卡在哪里了?你试过什么?
  • 这似乎已经被回答了。在发布之前,您应该尝试搜索其他问题的答案来解决您的问题。
  • 这能回答你的问题吗? Converting a String Array to an Int array

标签: java arrays string integer


【解决方案1】:

我会拆分字符串,流式传输数组,分别解析每个元素并将它们收集到一个数组中:

int[] result = Arrays.stream(str.split(" ")).mapToInt(Integer::parseInt).toArray();

【讨论】:

  • 您可能需要注意此方法需要 Java 8
【解决方案2】:

如果它们用空格分隔,您可以像这样一一转换

String array = "19 35 91 12 36 48 59";
// separate them by space
String[] splited = array.split(" ");
// here we will save the numbers
int[] numbers = new int[splited.length];
for(int i = 0; i < splited.length; i++) {
    numbers[i] = Integer.parseInt(splited[i]);
}
System.out.println(Arrays.toString(numbers));        

【讨论】:

    【解决方案3】:

    你也可以这样做,尽管它可能不如上面的解决方案漂亮:

     String S;
     int Array[]= new int[S.length()];
     int Counter=0;
     for(int i=0; i<S.length(); i++){
         if(Character.isDigit(S.charAt(i))==true){
            Array[Counter]=Integer.parseInt(S.charAt(i)+"");
            Counter++;
         }
     }
    

    缺点是,如果字符串不完全由数字组成,您将拥有一个部分为空的数组。根据您使用数组的目的,您可能想要使用其他东西。

    【讨论】:

    • 哦,我误读了我认为的问题,因为您希望数组中具有相同的结构,这意味着包括我建议以下的空格: String S;字符数组[]=S.toCharArray();
    【解决方案4】:

    如果你想要一个 Integer[] 数组而不是 int[] 使用:

    String input = "19 35 91 12 36 48 59";
    String[] array = input.split(" ");
    Integer[] result = Stream.of(array).mapToInt(Integer::parseInt).boxed().toArray(Integer[]::new);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-22
      • 2010-10-31
      • 2015-10-02
      • 2014-09-24
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多