0

我不知道这是否重复。如果是这样,请分享链接,因为我还没有找到任何人。在我的 Java 程序中,我有一个类似以下的字符串(字符串是动态创建的)。

String header="Requirements ID,Requirements Number,Requirements Desc,Requirements Text,Requirements Date";

现在我正在创建一个列表

List<String> csv = new ArrayList<String>(); 
csv=Arrays.asList(header.split("\\s*,\\s*")); //splittng each phrase separated by comma

但我没有以无序的方式获得 List 值。我的意思是我得到这样的列表值

[Requirements Number,Requirements Date,Requirements Desc,Requirements ID,Requirements Text]

我知道列表是无序的。但我希望列表csv是这样的

[Requirements ID,Requirements Number,Requirements Desc,Requirements Text,Requirements Date]

所以我的问题是如何以有序的方式得到这个?任何可能的解决方案?

4

2 回答 2

2

最好的方法是使用 StringTokenizer

1.) 使用StringTokenizer,用分隔符 "," 分割字符串

2.) 迭代 StringTokenizer 并填充列表

3.)现在在填充时,它会按顺序发生

伪代码类似于

String header="Requirements ID,Requirements Number,Requirements Desc,Requirements Text,Requirements Date";
StringTokenizer st = new StringTokenizer(header,",") ;
List<String> strList = new ArrayList<String>() ;
while (st.hasNextToken()) {
  strList.add(st.nextToken()) ;
}
于 2013-04-25T09:52:39.813 回答
1

使用 apache string utils 和 collections api:

http://commons.apache.org/proper/commons-lang//apidocs/org/apache/commons/lang3/StringUtils.html

    String header="Requirements ID,Requirements Number,Requirements Desc,Requirements Text,Requirements Date";
    List<String> list = Arrays.asList(StringUtils.split(header,","));
    Collections.sort(list);
于 2013-04-25T10:11:19.433 回答