1. 程式人生 > >java經典程式程式設計知識(三)

java經典程式程式設計知識(三)

Java中int、String的型別轉換
int->String
  1. 加上""
  2. Integer.toString()
String->int
  1. Integer.parseInt();

String[] str=scanner.nextLine().split(" ");//是字串陣列而不是字元陣列
總結:
length——陣列的屬性;
length()——String的方法;
size()——集合的方法;
nums2=nums1;//陣列之間賦值,只是改變了引用而已
\s代表一個空白字元 正則表達是中的\s應該是匹配一個空白字元

Scanner.useDelimiter( )

由於Scanner物件將首先跳過輸入流開頭的所有空白分隔符,然後對輸入流中的資訊進行檢查,直到遇到空白分隔符為止;因此輸入資料:this is a test;空白後面的字元:is a test不會顯示輸出來。那如何將含有空格的資料輸出呢?
這時就需要用Scanner.useDelimiter( )方法,可以將分隔符號修改為"回車",或者其他字元。
有n個整數,使其前面各數順序向後移m個位置,最後m個數變成最前面的m個數,迴圈可以用%運算

打印出楊輝三角形(要求打印出10行如下圖)
      1
     1 1  
    1 2 1
    ......
public class Programme {
    public static void main(String[] args) {
        int[][] nums=new int[10][10];
        //陣列第一列全為1
        for(int i=0;i<10;i++){
            nums[i][0]=1;
        }
        //將楊輝三角形的數全部算出來
        for(int i=1;i<10;i++){
            for(int j=1;j<i+1;j++){
                nums[i][j]=nums[i-1][j]+nums[i-1][j-1];
            }
        }
        //分情況列印輸出
        for(int i=0;i<10;i++){
            for(int j=0;j<10-i-1;j++){
                System.out.print("  ");
            }
            for(int j=0;j<10;j++){
                if(nums[i][j]==0){
                    break;
                }
                System.out.print(nums[i][j]+"  ");
            }
            System.out.println();
        }
    }
}

【程式37】
題目:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。

public class Programme {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入人數:");
        int n=scanner.nextInt();
        boolean bool[]=new boolean[n];
        //count控制圈內人數,index控制圈的迴圈,c控制報數的次數
        int count=n,index=0,c=0;
        while(count>1){
            for(int i=index;i<n;i++){
                if(bool[i]==false){
                    c++;
                }
                if(c==3){//報數滿三次,c重置為0
                    bool[i]=true;
                    count--;//表示人少了一個
                    c=0;
                }
            }
            index=0;//報滿一圈置為0
        }
        for(int i=0;i<n;i++){
            if(!bool[i]){
                System.out.println("最後留下的是原來的第"+(i+1)+"位");
            }
        }
        scanner.close();
    }
}

高精度除以低精度=高精度

string1.compareTo(string2);

如果返回1,String1>String2
如果返回-1,String1<String2
如果返回0,String1=String2

持續輸入

while (input%2!=0) {
System.out.println("你輸入的不是偶數,請重新輸入:");
input=scanner.nextInt();
}
參考:https://www.cnblogs.com/bluestorm/p/3698810.html



來自為知筆記(Wiz)