程式設計必知的基礎知識
阿新 • • 發佈:2019-01-30
一,輸入輸出
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)
在指定列表的指定位置處交換元素。