1. 程式人生 > >程式設計必知的基礎知識

程式設計必知的基礎知識

一,輸入輸出
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) 
          在指定列表的指定位置處交換元素。