Java 拆分并删除新行
我试着用逗号分割文本,并将每个文本添加到列表中。文本示例: 用户1,角色1 用户2,角色2 用户3,角色3Java 拆分并删除新行,java,list,arraylist,Java,List,Arraylist,我试着用逗号分割文本,并将每个文本添加到列表中。文本示例: 用户1,角色1 用户2,角色2 用户3,角色3 user 4 , role 4 user 5 , role 5 功能: private Map<Integer, List<String>> map = new HashMap<Integer, List<String>>(); public String splitString(String sentence) { List
user 4 , role 4
user 5 , role 5
功能:
private Map<Integer, List<String>> map = new HashMap<Integer, List<String>>();
public String splitString(String sentence) {
List<String> list;
String[] dividedByNewLine = sentence.split("\n");
for (int i = 0; i < dividedByNewLine.length; i++) {
String[] divideByComma = dividedByNewLine[i].split(",");
list = new ArrayList<String>();
for (int j = 0; j < divideByComma.length; j++) {
list.add(divideByComma[j].trim());
}
if (!list.isEmpty()) {
map.put(i, list);
}
System.out.println(map.get(i));
}
return null;
}
但函数构建列表如下所示:
[用户1,角色1]
[]
[用户2,角色2]
[用户3,角色3]
[]
[用户4,角色4]
[]
[用户5,角色5]
如何删除列表中的[]?,因为您的输入有空行。如果您不想显示空行,您的代码应该是:
for (int i = 0; i < dividedByNewLine.length; i++) {
if (!dividedByNewLine[i].trim().isEmpty()){
String[] divideByComma = dividedByNewLine[i].split(",");
list = new ArrayList<String>();
for (int j = 0; j < divideByComma.length; j++) {
list.add(divideByComma[j].trim());
}
if (!list.isEmpty()) {
map.put(i, list);
}
System.out.println(map.get(i));
}
}
在dividedByNewLine中搜索所有空的行并删除它们!然后你会得到
user 1 , role 1
user 2 , role 2
user 3 , role 3
user 4 , role 4
user 5 , role 5
或dividedByNewLine[i]。拆分,对于非空的dividedByNewLine:
for (int i = 0; i < dividedByNewLine.length; i++)
{
if(!dividedByNewLine[i].isEmpty())
{
String[] divideByComma = dividedByNewLine[i].split(",");
...
}
}
尝试以下for循环:
基本上,您必须跳过空行。您可以在添加到列表之前删除[]:-
这是因为toString方法具有那样的列表表示形式。如果!dividedByNewLine[i].trim.equals代码块已工作。非常感谢。
for (int i = 0; i < dividedByNewLine.length; i++) {
if(!dividedByNewLine[i].trim().equals("")) {
String[] divideByComma = dividedByNewLine[i].split(",");
list = new ArrayList<String>();
for (int j = 0; j < divideByComma.length; j++) {
list.add(divideByComma[j].trim());
}
if (!list.isEmpty()) {
map.put(i, list);
}
System.out.println(map.get(i));
}
}
for (int i = 0; i < dividedByNewLine.length; i++) {
String[] divideByComma = dividedByNewLine[i].split(",");
//Add this control statement
if(divideByComma.isEmpty())
continue; //If the string is empty then continue the loop
list = new ArrayList<String>();
for (int j = 0; j < divideByComma.length; j++) {
list.add(divideByComma[j].trim());
}
if (!list.isEmpty()) {
map.put(i, list);
}
System.out.println(map.get(i));
}