hnnsx


私信TA

用户名:hnnsx

访问量:2702

签 名:

等  级
排  名 24186
经  验 557
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

        输入函数nextLine每次获取单行字符串,string.split()分割需要注意在符号前加“\\”表示转义,

        split函数返回值是字符串数组,例:string="1.2.3.4"->["1","2","3","4"]

        string转换为int类型,使用Integer.parseInt(s)

        遍历数组 调用numProcess()进行逐一判断,最后输出结果。


参考代码:

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		boolean flag=true;

		while (true) {
			String text =in.nextLine();
			String[] strings=text.split("\\.");//分割ip
			//遍历判断
			for (String string : strings) {
				if (numProcess(string)) {
					flag=true;
				}else if (string.startsWith("0")) {
					flag=false;
					break;//题目要求,以0开头不符合ip地址
				}else {
					flag=false;
					break;//有一个不符合就退出,N
				}
			}
			if (flag) {
				System.out.println("Y");
			}else System.out.println("N");
			
			if(!in.hasNext())break;
		}

	}
	//字符逐一判断
	public static boolean numProcess(String s) {
		int a = 0;
		boolean f = false;
		try {
			a = Integer.parseInt(s);
			if (a > 255 || a < 0) {
				f = false;
			} else
				f = true;//符合
		} catch (NumberFormatException e) {
			f = false;//字符
		}
		return f;
	}


 

0.0分

0 人评分

  评论区