当我分割我的字符串时,我在最后一个索引后得到一个换行符,是否有人知道是什么导致了这个?
代码:
String string = "1234324:Kalle"
public void splitString(String string){
if (string.contains(":")) {
String[] parts = string.split(":");
returnedId = parts[0];
returnedUserName = parts[1];
System.out.println(returnedUserName + " this gets printed on a new line");
} else {
throw new IllegalArgumentException("String " + string + " does not contain :");
}
}
这会导致我的用户界面出现一些不需要的问题,无论如何我可以解决这个问题吗?
答案 0 :(得分:2)
在拆分之前添加:
"settings" : {
"analysis" : {
"filter" : {
"nGram_filter": {
"type": "shingle",
"max_shingle_size": 5,
"min_shingle_size": 2,
"output_unigrams":"true"
}
},
"analyzer" : {
"my_ngram_analyzer" :{
"tokenizer" : "standard",
"filter" : [
"lowercase",
"nGram_filter"
]
}
}
}
}
这将删除任何CRLF或TAB ASCII字符。
答案 1 :(得分:1)
输入中的冒号后面几乎肯定有换行符。
String.split(String)
采用正则表达式。您可以消耗(可选)冒号周围的空白区域,例如
String[] parts = string.split("\\s*:\\s*");