我目前正在使用yandex API开发转换器应用。由于某种原因,翻译的输出带有许多空格。例如,如果我将“始终忠实”翻译为拉丁语,则会显示" Semper fidelis "
之类的结果。所以我想删除这些空格并将其显示为"Semper fidelis"
所以我在下面写了代码(这是用昏迷写的,因为很清楚看到这个想法)
public String modifyString(String tobeModify){
String[] store = tobeModify.split("\\s+");
String output=null;
if (store.length == 0){
output = "";
}else if (store.length == 1){
output = store[0];
}else {
output = String.join(",", store);
}
return output;
}
但此产品输出如,Semper,fidelis
。另外商店数组的长度为2,因为我打印它应该是空字符串。我想打印输出像“Semper,fidelis”(昏迷是为了演示目的)。我不知道这里有什么问题
答案 0 :(得分:3)
使用String newStr = tobeModify.trim();
修剪功能将剪切前导空格和结束空格 请参阅:http://www.javatpoint.com/java-string-trim
答案 1 :(得分:1)
如果您收到以下输出",Semper,fidelis"
,则表示您的数组包含空元素""
。
["", "Semper", "fidelis"]
你应该丢弃数组中的空值:
Arrays.stream(store).filter(s -> !s.isEmpty()).toArray();
你可以写下你的方法:
public String modifyString(String s) {
return s.trim().replaceAll("\\s+", ", ");
}