字符串+排序

題目:給一個不多於5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。
分析:
(1)利用隨機函數產生[1,99999]之間的一個正整數n
(2)將n轉換成字符串s,調用字符串的length()方法求得位數
(3)創建一個StringBuffer類對象,將s傳入,調用StringBuffer類的reverse()方法直接逆序輸出結果

    public static void main(String[] args) {
    //產生[1,9999]之間的正整數n
        Random random = new Random();
    //random 生成的隨機數包頭不包尾,所以此處寫9999只能產生[0,9999)之間的數,要使得生成[1,9999]的數需要加1;
        int a = random.nextInt(9999)+1;
        System.out.println("產生的隨機數是" + a);
    //將隨機產生的隨機數轉換成字符串
        String s = String.valueOf(a);
        System.out.println("產生的隨機數是" + s.length() + "位數");
        StringBuffer stringBuffer = new StringBuffer(s);
        System.out.println("逆序打印出來是:" +stringBuffer.reverse());
}
/*產生的隨機數是6421
產生的隨機數是4位數
逆序打印出來是:1246*/

java中的字符、字符串及數字之間的轉換
一、String和int之間的轉換
1.String轉換成int:Integer.valueOf(“12”);
2.int轉換成String:String.valueOf(12);
二、char和int之間的轉換
1.首先將char轉換成String
String str = String.valueOf(‘2’);
2.轉換
Integer.valueof(str) 或者Integer.PaseInt(str)
Integer.valueof返回的是Integer對象,Integer.paseInt返回的是int

題目:根據字符串內字符的ASCII碼值對字符串數組進行排序。
分析:字符串用ASCII碼比較大小,規則是:
1、比較首字母的ASCII碼大小
2、若是前面的字母相同,則比較之後的字母的ASCII碼值
3、若是一個字符串從首字母開始包含另一個字符串,則認爲字符串長度較長的大;例 :ab > a
備註:Java中String類有一個compareTo方法,該方法返回一個int類型的數據。其比較規則是:拿出字符串的第一個字符與參數的第一個字符進行比較,如果兩者不等,比較結束,返回兩者的ascii差,即字符串的第一個字符減去參數的第一個字符的ascii碼值.如果相等,則比較第二個字符,以此類推。比較到最後還是相等的,方法返回值爲0。
比如下面的代碼:“abc”.compareTo(“cad”)==-2
這裏有一點需要注意:如果兩個字符串的長度不同,並且一個字符串與另一個字符串的前面N個字符相等,那麼這個方法返回返回兩個字符串長度之差。
比如下面的代碼:“fa”.compareTo(“f”)==1

    public static void main(String[] args) {
        String[] str = {"abc","cba","m","fa","f"};
        for (int i = str.length; i >= 1 ; i--) {
            for (int j = 0; j < i - 1 ; j++) {
                if (str[j].compareTo(str[j+1])<0){
                    String temp = str[j];
                    str[j] = str[j+1];
                    str[j+1] = temp;
                }
            }
        }
        for (String s : str) {
            System.out.print(s + " ");
        }
    }
}
/*m fa f cba abc */

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章