将整数输入到arraylist中

时间:2012-04-22 15:54:50

标签: java arraylist

如果我在文本文件中有一行整数,格式如下: [3,3,5,0,0] 我怎样才能将整数添加到arraylist? 我有这个,但它不起作用:

while (input.hasNextInt())

{
    int tempInt = input.nextInt();
    rtemp.add(tempInt);
}       

如何处理逗号和括号?

6 个答案:

答案 0 :(得分:2)

您可以使用ReplaceAll(String regex, String replacement)删除括号,然后使用Split()函数将字符串拆分为ArrayList,使用“,”作为分隔符。但是,这会将String拆分为只包含数字的较小字符串,因此请使用Integer.parseInt()将字符串转换为int。

答案 1 :(得分:2)

您需要记住文件中的数字是 strings ,并且需要先将其转换为实际的整数。假设在输入文件中每一行都有所描述的格式(例如:[3, 3, 5, 0, 0]),这应该适用于将所有数字添加到单个ArrayList,忽略空格,括号和逗号:

BufferedReader in = new BufferedReader(new FileReader("file.txt"));
List<Integer> ints = new ArrayList<Integer>();
String line = in.readLine();

while (line != null) {
    String[] numbers = line.split("[\\[\\],\\s]+");
    for (int i = 1; i < numbers.length; i++)
        ints.add(Integer.parseInt(numbers[i]));
    line = in.readLine();
}

in.close();

答案 2 :(得分:1)

未经测试但这应该有用。

string s = "[1,2,3,4,5]";
ArrayList list = new ArrayList();

foreach (string st in s.Replace("[", "").Replace("]", "").Split(','))
{
     list.Add(int.Parse(st));
}

答案 3 :(得分:0)

您可以读取整个字符串并使用正则表达式或字符串标记符

答案 4 :(得分:0)

您可以尝试这样的事情:

Scanner scanner = new Scanner(file);  

while (scanner.hasNextLine()) {  
      String line = scanner.nextLine();  
      String[] nums = line.substring(1,line.length() - 1).split(",");  
      for(String n:nums){  
            list.add(Integer.valueOf(n));
      }
}

您也可以使用正则表达式。

答案 5 :(得分:0)

//you already know how to read those lines into Strings. 
String s="[3, 3, 5, 0, 0]";
StringTokenizer tokenizer = new StringTokenizer(s, "[,]");
while(tokenizer.hasMoreTokens())
 list.add(Integer.parseInt(tokenizer.nextToken())

java.util.StringTokenizer将帮助您使用指定的分隔符(“[”,“,”或“]”)分割字符串

参考http://docs.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html