首页 > 试题广场 >

IP地址

[编程题]IP地址
  • 热度指数:17781 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入一个ip地址串,判断是否合法。

输入描述:
每行有一个IP地址,IP地址的形式为a.b.c.d,其中a、b、c、d都是整数。


输出描述:
可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!”,否则输出"No!”。

合法的IP地址为:
a、b、c、d都是0-255的整数。
示例1

输入

255.255.255.255
512.12.2.3

输出

Yes!
No!
Java
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        next:
        while (scanner.hasNext()) {
            String s = scanner.nextLine();
            String[] ss = s.split("\\.");
            if (ss.length != 4) {
                System.out.println("No!");
                break next;
            } else {
                for (String s1 : ss) {
                    int i1 = Integer.parseInt(s1);
                    if (!(i1 <= 255 && i1 >= 0)) {
                        System.out.println("No!");
                        break next;
                    }
                }
                System.out.println("Yes");
            }
        }
    }
}


发表于 2020-03-18 16:33:52 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        String ip = scanner.nextLine();
        String[] ipNumber = ip.split("\\.");
        scanner.close();
        int len = ipNumber.length;
        int number;
        int counter = 0;
        for(int i = 0;i<len;i++){
            number = Integer.parseInt(ipNumber[i]);
            if(number>=0&&number<=255){
                counter++;
            }
        }
        if(counter==4) System.out.print("Yes!");
        else System.out.print("No!");
    }
}

发表于 2018-12-31 14:37:31 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner scanr=new Scanner(System.in);
        String str=scanr.nextLine();
        if (str.split("\\.").length!=4)
            System.out.println("No!");
        else {
            for (int i = 0; i < 4; i++) {
                int value = Integer.parseInt(str.split("\\.")[i]);
                if (value < 0 || value > 255) {
                    System.out.println("No!");
                    return;
                }
            }   System.out.println("Yes!");
        }
    }
} 

#include<stdio.h>

int main(){
    char s[100];
    gets(s);
    int i=0;
    int v=0;
    int c=0;
    while(s[i]!='\0'){
        if(s[i]=='.')
            c++;
        i++;
    }
    if(i>15 || c!=3){
        printf("No!");
        return 0;
    }
    s[i]='.';
    s[i+1]='\0';
    i=0;
    while(s[i]!='\0'){
        while(s[i]!='.'){
            v=v*10+(s[i]-'0');
            i++;
        }
        if(v<0 || v>255){
            printf("No!");
            return 0;
        }
        v=0;
        i++;
    }
    printf("Yes!");
    return 0;
}

编辑于 2018-06-01 11:20:56 回复(0)
public class Main {
	
	public String doSome(String string){
		String regex="\\.";
		int record=0;
		String[] strings=string.split(regex);
		for(int i=0;i<strings.length;i++){
			if(Integer.valueOf(strings[i])>=0&&Integer.valueOf(strings[i])<=255){
				record++;
			}
		}
		if(record==4){
			return "Yes";
		}
		return "No";
	}

	public static void main(String[] args) {
	     Scanner s=new Scanner(System.in);
	     int size=s.nextInt();
	     int count=0;
	     String input;
	     Main m=new Main();
	     String[] strings=new String[size];
	     while(count<size){
	    	 input=s.next();
	    	 strings[count]=input;
	    	 count++;
	     }
	    for(int i=0;i<strings.length;i++){
	    	System.out.println(m.doSome(strings[i]));
	    }
	}
}


发表于 2017-06-11 20:30:06 回复(0)
package com.lin.niuke;  import java.util.Scanner;  /**  * Created by 9.6 on 2017/5/26.  */ public class IpCheck { public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);  while (scanner.hasNext()){ int size = scanner.nextInt();  Scanner sx = new Scanner(System.in);  for (int i = 0; i < size; i++) {

                String ip = sx.nextLine();  if (ip.contains(".")){ if((!ip.endsWith(".")) && (!ip.startsWith("."))){
                        String[] ipArr = ip.split("\\.");  if (ipArr.length == 4){ int j = 0;  for ( ;j < ipArr.length; j++) { if (ipArr[j] != "") { if ((Integer.valueOf(ipArr[j]) > 255) || (Integer.valueOf(ipArr[j]) < 0)) {
                                        System.out.println("No!");  break;  } if (j == (ipArr.length - 1)) {
                                        System.out.println("Yes!");  }
                                }else{
                                    System.out.println("No!");  }
                            }
                        }else{
                            System.out.println("No!");  }
                    }else {
                        System.out.println("No!");  }
                }else {
                    System.out.println("No!");  }
            }
        }
    }
}

各位大神帮忙看看,我自己测试都没有问题,为啥贴上去测试一直报,请检查是否存在数组越界等非法访问情况。

发表于 2017-05-27 09:04:43 回复(0)
import java.util.Scanner;


public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
String[] str = new String[n];
for(int i=0;i<str.length;i++){
str[i]=input.nextLine().trim();
}
printjieg(str);
}
public static void printjieg(String[] str){
for(int j=0;j<str.length;j++){
String[] st=str[j].trim().split("\\.");
//System.out.println(st);
int xy = 0;
boolean t=true;
for (int i = 0; i < st.length; i++) {
int x=Integer.parseInt(st[i]);
//System.out.println(x);
if((x>255||x<0)){
t=false;
break;
}else{
xy++;
}
}
if(xy==4){System.out.println("Yes!");}
else if(t==false||xy!=4){System.out.println("No!");}
}
}
}
在本机上运行正确,但就是不给通过!!!!!





import java.util.Scanner;


public class Main {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
//Scanner scan=new Scanner(System.in);
String n=s.nextLine();
//String[] str = new String[n];
while(s.hasNext()){
String str = s.nextLine();
String[] arr = str.trim().split("\\.");
printjieg(arr);
}
}
public static void printjieg(String[] str){
int xy = 0;
boolean t=true;
for(int j=0;j<str.length;j++){
//String[] st=str[j].trim().split("\\.");
//System.out.println(st);
//for (int i = 0; i < str[j].length(); i++) {
int x=Integer.parseInt(str[j]);
//System.out.println(x);
if((x>255||x<0)){
t=false;
break;
}else{
xy++;
}
}
if(xy==4){System.out.println("Yes!");}
else if(t==false||xy!=4){System.out.println("No!");}
}
}
第二次代码竟然通过了。。。果然是傻不拉唧的机器检测
编辑于 2017-04-16 01:51:21 回复(0)