字符串+排序

题目:给一个不多于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 */

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