如果我在文本文件中使用以下格式的整數行: [3,3,5,0,0] 我該如何將整數添加到數組列表中? 我有這個,但它不工作:將整數輸入到數組列表中
while (input.hasNextInt())
{
int tempInt = input.nextInt();
rtemp.add(tempInt);
}
如何處理逗號和括號?
如果我在文本文件中使用以下格式的整數行: [3,3,5,0,0] 我該如何將整數添加到數組列表中? 我有這個,但它不工作:將整數輸入到數組列表中
while (input.hasNextInt())
{
int tempInt = input.nextInt();
rtemp.add(tempInt);
}
如何處理逗號和括號?
您可以使用ReplaceAll(String regex, String replacement)刪除括號,然後使用Split()函數將字符串拆分爲使用「,」作爲分隔符的ArrayList。然而,這會將字符串拆分爲只包含數字的較小字符串,所以使用Integer.parseInt()將字符串轉換爲int。
如果他使用的是正則表達式,他可以從零開始讀這些整數。不需要2次傳球。 – 2012-04-22 16:05:36
未經測試,但這應該工作。
string s = "[1,2,3,4,5]";
ArrayList list = new ArrayList();
foreach (string st in s.Replace("[", "").Replace("]", "").Split(','))
{
list.Add(int.Parse(st));
}
你可以閱讀整個字符串並使用正則表達式或也是字符串標記
你可以嘗試這樣的事情:
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));
}
}
你也可以使用正則表達式用於此目的。
您需要記住,文件中的數字是字符串,需要先轉換爲實際整數。假設在輸入文件中的每一行具有所述的格式(例如:[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();
//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
這是功課拆分字符串? – 2012-04-22 16:05:59