簡體   English   中英

將多行字符串強制轉換為列表 <String> 在Java中

[英]Coerce multiline string to List<String> in Java

我的應用程序中某些Model類的輸出之一是以下格式的多行字符串:

System.out.println(str); //output:

row1
row2
row3
row4

根據輸出的不同,字符串中可能有很多值/行,因此str字符串僅用於示例目的。 如果可能,我希望將此字符串強制轉換為List<String> ,因此打印的輸出將顯示為:

List<String> listStr = new ArrayList<String>();
System.out.println(listStr); //output:

[row1, row2, row3, row4]

我嘗試了許多不同的方法,例如:

for (Model modelRow : modelTableView.getItems()) {
            str = modelRow.getInfo();
            System.out.println(str);
            listStr = new ArrayList<String>(Arrays.asList(str.split("\n")));
}

在大多數情況下,僅返回最后一個值,否則我將獲得所有值的單個數組,例如:

[row1]
[row2]
[row3]
[row4]

因此,如何將所有值都僅包含在一個列表中[row1, row2, row3, row4] 我想念什么? 任何幫助或指示,將不勝感激。

編輯

我避免使用帶有str.split()方法的分隔符, modelTableView直接使用以下firstColumnmodelTableViewfirstColumn查詢單元格:

for (int i=0; i < modelTableView.getItems().size(); i++) {
            str = firstColumn.getCellData(i);
            System.out.println(str);
            listStr = Arrays.asList(str);
}

該代碼不再返回NullPointerException並允許其繼續,但是listStr的輸出只是原始str字符串的最后一個元素:

System.out.println(listStr);
//output:
[row4]

是否應該在循環中更改迭代器? 還有其他想法可能出什么問題嗎?

嘗試這樣的事情:

List<String> listStr = new ArrayList();
for (Model modelRow : modelTableView.getItems()) {
   str = modelRow.getInfo();
   System.out.println(str);
   listStr.addAll(Arrays.asList(str.split("\n")));
}

編輯

如果只想以打印List的方式打印數組,則可以使用:

Arrays.toString( array )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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