Во-первых, String
является неизменным. Если я понимаю ваш вопрос, вы хотите, чтобы что-то начиналось с одного IP-адреса и возвращало то, что было бы следующим. Увеличивая переполняющие октеты (ip-адреса). Нечто подобное,
private static String incrementIp(String str) {
String[] parts = str.split("\\.");
int oct1 = Integer.parseInt(parts[0]);
int oct2 = Integer.parseInt(parts[1]);
int oct3 = Integer.parseInt(parts[2]);
int oct4 = Integer.parseInt(parts[3]);
oct4++;
if (oct4 > 255) {
oct4 = 0;
oct3++;
}
if (oct3 > 255) {
oct3 = 0;
oct2++;
}
if (oct2 > 255) {
oct2 = 0;
oct1++;
}
if (oct1 > 255) {
oct1 = 0;
}
return String.format("%d.%d.%d.%d", oct1, oct2, oct3, oct4);
}
Мы могли бы проверить это приращением в 10 раз, как
public static void main(String[] args) {
String ipAddress = "192.168.1.254";
for (int i = 0; i < 10; i++) {
System.out.printf("Before: %s, After: %s%n", ipAddress,
incrementIp(ipAddress));
ipAddress = incrementIp(ipAddress);
}
}
Какие выходы (предположительно ожидается)
Before: 192.168.1.254, After: 192.168.1.255
Before: 192.168.1.255, After: 192.168.2.0
Before: 192.168.2.0, After: 192.168.2.1
Before: 192.168.2.1, After: 192.168.2.2
Before: 192.168.2.2, After: 192.168.2.3
Before: 192.168.2.3, After: 192.168.2.4
Before: 192.168.2.4, After: 192.168.2.5
Before: 192.168.2.5, After: 192.168.2.6
Before: 192.168.2.6, After: 192.168.2.7
Before: 192.168.2.7, After: 192.168.2.8
Вы должны [показать] (HTTP: //stackoverflow.com/help/mcve)) некоторый код. Кроме того, проверьте [parseInt] (http://www.tutorialspoint.com/java/number_parseint.htm) – sam
Проголосовало, чтобы закрыть этот вопрос как "слишком широкий", если код не отображается. –
Проверьте также string.split –