sim*_*tim 0 java arrays string javafx
我的应用程序中某些Model类的输出之一是以下格式的多行字符串:
System.out.println(str); //output:
row1
row2
row3
row4
Run Code Online (Sandbox Code Playgroud)
根据输出,str字符串中可能有许多值/行,因此字符串仅用于示例目的.List<String>如果可能的话,我希望这个字符串被强制转换,因此打印输出将显示为:
List<String> listStr = new ArrayList<String>();
System.out.println(listStr); //output:
[row1, row2, row3, row4]
Run Code Online (Sandbox Code Playgroud)
我试过很多不同的方法,例如:
for (Model modelRow : modelTableView.getItems()) {
str = modelRow.getInfo();
System.out.println(str);
listStr = new ArrayList<String>(Arrays.asList(str.split("\n")));
}
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,只返回最后一个值,或者我获得所有值的单个数组,例如:
[row1]
[row2]
[row3]
[row4]
Run Code Online (Sandbox Code Playgroud)
那么,我怎样才能在一个列表中包含所有值[row1, row2, row3, row4]?我错过了什么?任何帮助或指示将不胜感激.
编辑
我避免使用分离器以一个str.split()方法和我查询的细胞中firstColumn的内modelTableView直接使用以下内容:
for (int i=0; i < modelTableView.getItems().size(); i++) {
str = firstColumn.getCellData(i);
System.out.println(str);
listStr = Arrays.asList(str);
}
Run Code Online (Sandbox Code Playgroud)
代码不再返回NullPointerException并允许继续,但输出listStr只是原始str字符串的最后一个元素:
System.out.println(listStr);
//output:
[row4]
Run Code Online (Sandbox Code Playgroud)
我应该在循环中更改迭代器吗?什么可能出错?
尝试这样的事情:
List<String> listStr = new ArrayList();
for (Model modelRow : modelTableView.getItems()) {
str = modelRow.getInfo();
System.out.println(str);
listStr.addAll(Arrays.asList(str.split("\n")));
}
Run Code Online (Sandbox Code Playgroud)
如果您只想以打印方式打印数组List,可以使用:
Arrays.toString( array )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
804 次 |
| 最近记录: |