编程必知的基础知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/flower_CSDN/article/details/81781754

一,输入输出
Scanner(感觉自己笔试踩坑好多次了)

sc.next()
sc.nextInt()
在读取到有效字符(空格,回车,tab等除外)才会开始进行读取。默认使用空白格,TAB,enter进行分割或结束符。

注意事项:
1,在sc.next()之后不可以直接使用相同的扫描器来使用nextLine(),因为sc.next()之后的回车会被nextLine()读取到.
解决方法:在使用sc.next()之后再使用一次sc.nextLine()将之后的回车读取到。

Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        sc.nextLine();
        String score=sc.nextLine();//分数

或者两次使用不同的扫描器。

 Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        Scanner sc1=new Scanner(System.in);
        String score=sc1.nextLine();

关于分隔符问题
next,nextInt的默认分隔符为空格,tab,回车
但是笔试的时候经常会使用到逗号进行分割,如何指定分隔符呢?
可以使用useDelimiter(“regex”);进行指定。Delimiter就是分隔符的意思。
Scanner sc=new Scanner(System.in).useDelimiter(“\s*,\s“);

        Scanner sc=new Scanner(System.in).useDelimiter("\\s*,*\\s*");
        int n=sc.nextInt();//派送点个数

        int[][] p=new int[n][2];

        for(int i=0;i<p.length;i++) {
            for(int j=0;j<2;j++) {
                p[i][j]=sc.nextInt();
            }
        }

二,数组工具Arrays
排序:升序
只能是一维数组
sort(int[] a)
对指定的 int 型数组按数字升序进行排序。
复制数组
copyOf(int[] original, int newLength)
复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。
copyOfRange(int[] original, int from, int to)
将指定数组的指定范围复制到一个新数组。

三,集合工具

static <T extends Comparable<? super T>> void sort(List<T> list) 
   根据元素的自然顺序 对指定列表按升序进行排序。

static <T> void sort(List<T> list, Comparator<? super T> c) 
         根据指定比较器产生的顺序对指定列表进行排序。 

static void swap(List<?> list, int i, int j) 
          在指定列表的指定位置处交换元素。 

猜你喜欢

转载自blog.csdn.net/flower_CSDN/article/details/81781754