split() 方法根据匹配给定的正则表达式来拆分字符串。
"."
"$"
" |"
和 "*"
等转义字符,必须得加 "\\"
split()使用案例
把10.254.32.26/30
转换为10.254.32.24-10.254.32.27
第二种方式更直观
import java.util.Scanner;
public class MaskDecoder {
private static int[] table={128,64,32,16,8,4,2,1};
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Please input:");
String[] input = in.next().split("/");
String[] ip=input[0].split("\\.");
int[] output =new int[4];
for (int i = 0; i < 4; i++) {
output[i]=Integer.parseInt(ip[i]);
}
int maskNumber=Integer.parseInt(input[1]);
int quotient=maskNumber/8;
int remainder=maskNumber%8;
int maskUnit=0;
for (int i = 0; i < remainder; i++) {
maskUnit+=table[i];
}
output[quotient]&=maskUnit;
for (int i = quotient + 1; i < 4; i++) {
output[i]=0;
}
System.out.print(output[0]+"."+output[1]+"."+output[2]+"."+output[3]+"-");
output[quotient]+=(255-maskUnit);
for (int i = quotient + 1; i < 4; i++) {
output[i]=255;
}
System.out.println(output[0]+"."+output[1]+"."+output[2]+"."+output[3]);
in.close();
}
}