![](/img/trans.png)
[英]Java -read from a text file and Add item( string , arrayList) to hashmap
[英]Java, read from a String into an ArrayList
我有一個內容為12345
的字符串。
將這些單個數字讀入整數ArrayList的最佳方法是什么? 像這樣:
{1, 2, 3, 4, 5}
這是我到目前為止的內容:
String data = getData();
this.points=new ArrayList<Integer>();
for (int i=0; i<data.length(); i++) {
int pt = Integer.parseInt(data.valueOf(i));
this.points.add(new Integer(pt));
}
問題是我得到了[(0),(1),(2),...]
而不是所需的數字。
您需要使用charAt(i)
方法, valueOf(i)
返回valueOf(i)
的String值,而不是i char
您可以使用String.charAt
從該位置獲取相應字符作為char
。 要將其添加到列表中,您需要轉換為int
。
String data = getData();
this.points=new ArrayList<Integer>();
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < data.length(); i++) {
this.points.add(Character.getNumericValue(data.charAt(i)));
}
該解決方案應能有效地使您的內存分配最小。 請注意,您需要確保數據上僅存在數值。
String data = getData();
this.points = new ArrayList<Integer>(); //if this is a field you should use points.clear() instead.
for (int i=0; i<data.length(); i++) {
this.points.add(Characacter.getNumericValue(data.charAt(i)));
}
您的問題是您試圖在索引上使用String.valueOf
方法,該方法實際上將在每次迭代中返回i的值
Integer.parseInt
將取整數; 您想逐位接受它。 為此,請改用Character.getNumericValue
。
String data = getData();
this.points=new ArrayList<Integer>();
for (int i=0; i<data.length(); i++) {
int pt = Character.getNumericValue(data.charAt(i));
this.points.add(new Integer(pt));
}
使用data.charAt()
代替valueOf
。 因此,您的代碼應類似於:
String data = getData();
for (int i = 0; i < data.length(); i++) {
int pt = Integer.parseInt(data.valueOf(data.charAt(i)));
this.points.add(new Integer(pt));
}
for (int i = 0; i < points.size(); i++) {
System.out.println(this.points.get(i));
}
嘗試這個
String data = getData();
this.points=new ArrayList<Integer>();
for (int i = 0; i < data.length(); i++) {
this.points.add(Integer.parseInt(s.charAt(i) + ""));
}
您將獲得所有這樣的整數:
String data = "254980";
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < data.length(); i++) {
list.add(new Integer(data.substring(i,i+1)));
}
測試:
for (Integer integer : list) {
System.out.print(integer);
}
版畫
2
5
4
9
8
0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.