Я хочу разделить строку без создания двух строк - PullRequest
0 голосов
/ 26 декабря 2018

Я хочу разделить строку без создания массива строк.Ниже приведен код

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["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 и портом.

Какя могу сделать это?

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Если это 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(":", " "), т. Е. Просто заменить все двоеточия пробелом.Надеюсь, это поможет.

0 голосов
/ 26 декабря 2018

Вы должны использовать метод замены вместо метода разделения для вашей цели:

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);
}
...