繁体   English   中英

如何从字符串中取数字并将它们放入arrayList中

[英]How to take numbers from a string and put them into an arrayList

我有一个程序,我试图从逗号分隔的字符串中取一组数字,并将它们放入ArrayList ; 但是,我不太清楚该怎么做。 到目前为止,我所做的是将String转换为一个字符数组,然后使用以下方法将字符转换为整数:

Character.digit(temp[i], 10)

此示例在for循环中迭代字符串。 让我们说在这种情况下"1,2,3,4" 获取新char数组的第一个元素并将其转换为int。

我的问题是,

  • 答:必须有更好的方法来做到这一点。
  • B:如果你得到一个2位或3位数字会发生什么,例如"34,2,3,65,125" 当我需要它作为一个元素时,这些将作为数组的单独元素存储。
  • C:如果数字是负数,会发生什么,如果负数是2或3位数,该怎么办? 例如, "-123,45,3,4,-6"

请记住,这对于任何String参数都是String

这里有很多条件,我不知道如何解决它们。

考虑使用

关于“任何String参数”,您可以选择:对不是以逗号分隔的数字的字符串进行失败或重新定义任务。 这就是编程的本质:你需要定义一切。 最简单的方法(也是最安全的方法)是每当你看到意想不到的东西时都会失败。 在这种情况下,Java会为你做,所以尽情享受吧。

你可以这样做:

String input = "-12,23,123123";
String[] numbers = input.split(",");
List<Integer> result = new ArrayList<Integer>();
for(String number : numbers){
    result.add(Integer.parseInt(number));
}

使用String.split()函数根据分隔符在不同的字符串中断开String:

    String input="-123,45,3,4,-6";
    String[] vals=input.split(",");

    List<Integer> numbers=new ArrayList<Integer>(vals.length);
    for(String val:vals) {
        numbers.add(Integer.valueOf(val));
    }

首先使用String.split()拆分输入String 然后尝试Integer.parseInt()

String testStr = "123,456,789";
String tokens[] = testStr.split(",");

ArrayList<Integer> numList = new ArrayList<Integer>();
for(int i = 0; i < tokens.length; i++)
{     
   try
   {
      Integer num = new Integer(tokens[i]);
      numList.add(num);
   } 
   catch(NumberFormatException e)
   {  
       //handle exception
   }
}
String input="-123,45,3,4,-6, a";
String[] vals=input.split(",");

List<Integer> numbers=new ArrayList<Integer>(vals.length);
for(String val:vals) {
    try {
        int a = Integer.valueOf(val);
        numbers.add(a);
    } catch (NumberFormatException e) {
        // TODO: handle exception
    }
}

使用此代码。 通过使用它,您还可以避免非整数值(如果有)。

您还可以使用StringTokenizer将字符串拆分为子字符串,然后使用Integer.parseInt将它们转换为整数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM