我想在不创建字符串数组的情况下拆分String。下面是代码
String output = "abc 0 0 222.1.2.3:12345 1.1.3.5:20000 55555";
JSONArray listeningIpsArray = new JSONArray();
if (StringUtils.isNotEmpty(output)) {
String[] lines = output.split("\n");
for (String line : lines) {
if (StringUtils.isNotBlank(line)) {
String[] port = output.split("\\:");
for (String l : port) {
listeningIpsArray.put(l.trim());
}
}
}
// String a[] =output.split("\\:");
System.out.println("String" + listeningIpsArray);
}
}
当我运行这段代码时,我得到如下输出。正在创建由3个String元素组成的数组
String["abc 0 0 222.1.2.3","12345 1.1.3.5","20000 55555"]
但是我只需要输出一个字符串,如下所示。
String["abc 0 0 222.1.2.3 12345 1.1.3.5 20000 55555"]
IP和端口之间的空间。
我该怎么做?
答案 0 :(得分:0)
出于您的目的,您必须使用replace而不是split方法:
String output = "abc 0 0 222.1.2.3:12345 1.1.3.5:20000 55555";
JSONArray listeningIpsArray = new JSONArray();
if (StringUtils.isNotEmpty(output)) {
String[] lines = output.split("\n");
for (String line : lines) {
if (StringUtils.isNotBlank(line)) {
listeningIpsArray.put(l.trim().replace(":"," "));
}
}
System.out.println("String" + listeningIpsArray);
}
答案 1 :(得分:0)
如果此String output = "abc 0 0 222.1.2.3:12345 1.1.3.5:20000 55555";
是您的输入,并且您想将"abc 0 0 222.1.2.3 12345 1.1.3.5 20000 55555"
作为输出,那么您要做的就是使用output.replace(":", " ")
,即只需用空格替换所有冒号即可。希望这会有所帮助。