Как преобразовать строку IP в массив целых чисел в Java? - PullRequest
1 голос
/ 20 мая 2019

Я пытаюсь сделать массив целых чисел из строки IP в Java. Например:

String ip = "192.168.0.1";
int[] ipArray = new int[4];
int[0] = 192; int[1] = 168; int[2] = 0; int[3] = 1;

Есть идеи, как мне это сделать?

Я знаю инструмент parseInt, но как мне работать с "."

Извините, нубский вопрос, я еще новичок.

Ответы [ 2 ]

2 голосов
/ 20 мая 2019

Разделите вашу строку знаком .. Решение с использованием Java 8 Streams:

int[] ipArray = Arrays.stream(ip.split("\\."))
                .mapToInt(Integer::valueOf)
                .toArray();

EDIT

Integer::parseInt может быть лучше здесь, поскольку он возвращает примитив int вместо Integer, как Integer::valueOf. Чтобы избежать ненужной распаковки:

int[] ipArray = Arrays.stream(ip.split("\\."))
                .mapToInt(Integer::parseInt)
                .toArray();
0 голосов
/ 20 мая 2019

Вы можете использовать метод String.split () .

Например:

String str = "192.168.0.1";
String[] strSplit = str.split("\\.");
int[] intArray = new int[strSplit.length];
for(int i=0; i<intArray.length; i++){
    intArray[i] = Integer.parseInt(strSplit[i]);
}

Причина \\. заключается в том, что .специальный символ в Java Regex Engine .В противном случае, если строка будет разделена скобками, то достаточно str.split("-").

...