New Coder牛客网机试题练习(一)

1、注重类的完整性以及主函数的完整性,有严格的格式。

   

例如:
      public class Main{
          public static void main(String[] args){
                  Scanner sc = new Scanner(System.in);
                  String str  = sc.nextLine();//sc为键盘输入的值,也就是入参
          }
        
    }

2、对输入有严格的控制,使用

Scanner sc = new Scanner(System.in);

3、读取时也有严格的数据类型的变量来承接输入的扫描得到的参数

4、输出有严格的输出 System.out.print() 或者System.out.println()  无多余的提示

5、对算法的空间和时间有严格的限制。64M 2s等;

6、Scanner的用法一

    

 

 

               

 

其实上图的意思就是,比如:nextlnt():只读取int值,就是只能读取整数类型的数据,如果输入了非整型的数据(浮点型字符串等)就会报错。
nextFloat()、nextDouble()这些也是以此类推,只能读取符合该类型的数据。

报错异常:Exception in thread "main" java.util.InputMismatchException

 

public class NewCoderTest {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str1 = sc.nextLine();
        System.out.println(sc.radix()+"str1:"+str1);
        String str2 = sc.next();
        System.out.println("str2:"+str2);
        int i = sc.nextInt();
        System.out.println("i:"+i);
        long l = sc.nextLong();
        System.out.println("l:"+l);
        Double d  = sc.nextDouble();
        System.out.println("d:"+d);
        boolean b = sc.nextBoolean();
        System.out.println("b:"+b);
    }
}

 

 

 

此处重点讲一下next()和nextLine()的区别
next():只读取输入直到空格。它不能读两个由空格或符号隔开的单词(只读取第一个空格或者符号之前的)。此外,next()在读取输入后将光标放在同一行中。(next()只读空格之前的数据,并且光标指向本行)

nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。读取输入后,nextLine()将光标定位在下一行。

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串(中间能加空格或符号)");
        String str3 = sc.nextLine();
        System.out.println("请输入一个字符串(中间不能加空格或符号)");
        String str4 = sc.next();
        System.out.println("请输入一个整数");
        int c;
        c = sc.nextInt();
        System.out.println("请输入一个double类型的小数");
        double d2 = sc.nextDouble();
        System.out.println("请输入一个float类型的小数");
        float f = sc.nextFloat();
        System.out.println("按顺序输出以上的值:");
        System.out.println(str3);
        System.out.println(str4);
        System.out.println(c);
        System.out.println(d2);
        System.out.println(f);

 

 

 7、Scanner用法二:

 

 

 

 

 

 

public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);    //构造Scanner类的对象scan,接收从控制台输入的信息
        System.out.println("请输入你的Name");
        String name = scan.nextLine();//接收一个字符串,可以加除Enter以外的所有符号,包括空格和Tab
        System.out.println("请输入你的Code");
        String code;
        while(scan.hasNextLine()) {// hasNextLine()方法判断当前是否有输入,当键盘有输入后执行循环
            if(scan.hasNextInt()) {// 判断输入的值是否为整数类型,当为整数类型时执行循环
                code= scan.nextLine();
                System.out.println("你输入的Name为:"+name);
                System.out.println("你输入的Code为:"+code);
                break;
            }else {
                System.out.println("请输入数字哦!");
                code= scan.nextLine();
                continue;
            }
        }
    }

输出结果:

 

输入固定数字,代表写入多少个值,然后将值存储到字符串数组中:

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] strArr = new String[10];
        for (int i = 0; i < strArr.length; i++) {
            if (sc.hasNextLine()) {
                String str5 = sc.nextLine();
                strArr[i] = str5;
            }
        }
        System.out.println("strArr:" + JSON.toJSONString(strArr));
        for (int i = 0; i < strArr.length; i++) {
            System.out.println("strArr" + i + ":" + strArr[i]);
        }
    }

输入输出结果:

101aaa
120aaa

1234

asd

345
123
last
strArr:["101aaa","120aaa","","1234","","asd","","345","123","last"]
strArr0:101aaa
strArr1:120aaa
strArr2:
strArr3:1234
strArr4:
strArr5:asd
strArr6:
strArr7:345
strArr8:123
strArr9:last
Disconnected from the target VM, address: '127.0.0.1:64146', transport: 'socket'

Process finished with exit code 0

例如输入10个值,其中空格也代表有值。

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String rowString = sc.next();
        String colString = sc.next();
        int row = Integer.valueOf(rowString);
        int col = Integer.valueOf(colString);
        System.out.print(row + " " + col);
        String[][] strArr = new String[row][col];
        for (int i = 0; i < row; i++) {
            for(int j =0;j<col;j++){
                if (sc.hasNext()) {
                    String str5 = sc.next();
                    strArr[i][j] = str5;
                }
            }
        }

        System.out.println("strArr:" + JSON.toJSONString(strArr));
        for (int i = 0; i < row; i++) {
            for(int j = 0;j<col;j++){
                if(j<col-1){
                    //System.out.print("strArr" + i + j+":" + strArr[i][j]);
                    System.out.print(strArr[i][j] +" ");
                }else{
                    //System.out.println("strArr" + i + j+":" + strArr[i][j]);
                    System.out.println(strArr[i][j]);
                }

            }
        }
    }
4 4
4 4
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
strArr:[["11","12","13","14"],["21","22","23","24"],["31","32","33","34"],["41","42","43","44"]]
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
Disconnected from the target VM, address: '127.0.0.1:64651', transport: 'socket'

Process finished with exit code 0

 

next的用法:

  public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] strArr = new String[10];
        for (int i = 0; i < strArr.length; i++) {
            if (sc.hasNext()) {
                String str5 = sc.next();
                strArr[i] = str5;
            }
        }
        System.out.println("strArr:" + JSON.toJSONString(strArr));
        for (int i = 0; i < strArr.length; i++) {
            System.out.println("strArr" + i + ":" + strArr[i]);
        }
    }
111  234 123  4556
1223ds  3435 435654
sdafd safddg
sfdd dfhsh  fdgfhhhgfh
strArr:["111","234","123","4556","1223ds","3435","435654","sdafd","safddg","sfdd"]
strArr0:111
strArr1:234
strArr2:123
strArr3:4556
strArr4:1223ds
strArr5:3435
strArr6:435654
strArr7:sdafd
strArr8:safddg
strArr9:sfdd
Disconnected from the target VM, address: '127.0.0.1:64237', transport: 'socket'

Process finished with exit code 0
posted @ 2020-01-06 22:04  Gentleman-cx  阅读(550)  评论(0)    收藏  举报