簡體   English   中英

如何在Java中將字符串解析為arraylist?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM