版权声明:本文为博主原创文章,未经博主允许不得转载。 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)
在指定列表的指定位置处交换元素。