[英]How do I parse a string into an arraylist in java?
我有一個包含固定值字段的大字符串,這組字段可以重復0到40次。 我想將此列表解析為arraylist,但是我不確定執行此操作的最佳方法嗎?
字符串數據如下,
CountryCode = 2 character
StateProv = 7 characters
PostalCode = 10 characters
BuildingNum = 5 characters
沒有定界符,模式只會重復
有什么建議嗎?
我可能只是讀重復的子字符串:
private static final int PATTERN_LENGTH = 24;
....
List<Location> list = new ArrayList<Location>();
if (text.length() % PATTERN_LENGTH != 0)
{
// throw an exception of some description; you haven't got valid data
}
for (int start = 0; start < text.length(); start += PATTERN_LENGTH)
{
list.add(Location.parse(text.substring(start, start + PATTERN_LENGTH));
}
(或者在循環的主體中執行解析,或者執行任何其他操作……要點是您已經有了子字符串。)
我嘗試使用字符數組。 我確信可以對其進行優化,並且我想看看可以應用哪些更改以使其更快。 這是我的測試:
public class Test {
public static String bigString = "USARIZONA85123-123477777USWASHING78987-458711111USCOLORAD11111-111133333";
public List<String> getValues() {
List<String> seperatedValues = new ArrayList<String>();
char[] bigStringArray = bigString.toCharArray();
char[] temp = new char[24];
int j = 0;
for (int i=1; i < bigStringArray.length+1; i++) {
temp[j] = bigStringArray[i-1];
j++;
if (i%24 == 0) {
seperatedValues.add(String.valueOf(temp));
temp = new char[24];
j = 0;
}
}
return seperatedValues;
}
public static void main(String[] args) {
Test test = new Test();
System.out.println(test.getValues());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.