A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hahh 中级黑马   /  2013-12-19 19:46  /  1100 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hahh 于 2013-12-19 23:08 编辑

public class Test3 {
        public static void sop(String str){
                System.out.println(str);
        }

        public static void main(String[] args) {
                String s = "cbdea";
                sop(sortString(s));
        }
        public static String sortString(String str){
                char[] chs = str.toCharArray();
                bubbleSort(chs);
                return new String(chs);
        }
        public static void bubbleSort(char[] arr){//这块的用int为何不行那,为什么必须这样的格式那。
               
                for (int i = 0; i < arr.length-1; i++) {
                        for (int j = i+1; j < arr.length; j++) {
                                if(arr>arr[j]){
                                        int temp = arr;
                                        arr = arr[j];
                                        arr[j] = (char) temp;为什么这里一定有个(char),没有就不对那》
                                }
                        }
                }
        }

}

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

5 个回复

倒序浏览
  1. public class Test3 {
  2.         public static void sop(String str){
  3.         System.out.println(str);
  4. }

  5. public static void main(String[] args) {
  6.         String s = "cbdea";
  7.         sop(sortString(s));
  8. }
  9. public static String sortString(String str){
  10.         char[] chs = str.toCharArray();
  11.         bubbleSort(chs);
  12.         return new String(chs);
  13. }
  14. public static void bubbleSort(char[] arr){//这块的用int为何不行那,为什么必须这样的格式那。
  15.         
  16.         for (int i = 0; i < arr.length-1; i++) {
  17.                 for (int j = i+1; j < arr.length; j++) {
  18.                         if(arr[i]>arr[j]){
  19.                                 int temp = arr[i];
  20.                                 arr[i] = arr[j];
  21.                                 arr[j] = (char)temp;//为什么这里一定有个(char),没有就不对那?
  22.                         }
  23.                 }
  24.         }
  25. }
  26. }
  27. /*
  28.         你的这个问题的根本就是类型匹配的问题。
  29.         1.首先你定义了一个String类型的字符串
  30.         2.然后你用str.toCharArray()方法把它转换成了字符数组,在数组中存放的就变成字符类型的了
  31.         3.对数组中的元素进行了排序,因为你在排序中定义的temp是int类型的,最后就需要把它强转成char类型
  32.           这种定义在语法上是没有错误的,但整个程序阅读起来非常的不容易。
  33.         4.直接改成下面的方式,简单易懂。
  34.                                           char temp = arr[i];
  35.                     arr[i] = arr[j];
  36.                     arr[j] = temp;
  37.           
  38. */
复制代码

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 很给力!

查看全部评分

回复 使用道具 举报
我加了注释,希望对你有帮助
  1. public class Test3 {
  2.     public static void sop(String str){  //封装了输出语句,有利于书写简便。
  3.             System.out.println(str);
  4.     }

  5.     public static void main(String[] args) {
  6.             String s = "cbdea";
  7.             sop(sortString(s));//可以拆成 String str=soreString(s);sop(str);
  8.     }
  9.     public static String sortString(String str){//将字符串变成字符数组的方法。
  10.             char[] chs = str.toCharArray();
  11.             bubbleSort(chs);//调用字符数组排序方法
  12.             return new String(chs);//将排序好的数组转化成字符串返回
  13.     }
  14.     public static void bubbleSort(char[] arr){//上面调用这个方法时传入的参数数字符数组,那么接受时,当然也要是字符数组呀!传入数值类型应与接受参数类型一致
  15.             
  16.             for (int i = 0; i < arr.length-1; i++) {
  17.                     for (int j = i+1; j < arr.length; j++) {//大圈套小圈的循环
  18.                             if(arr[i]>arr[j]){
  19.                                     int temp = arr[i];//这里如果定义成char temp = arr[i];那么后面就不用强制类型转换了。
  20.                                     arr[i] = arr[j];
  21.                                     arr[j] = (char) temp;//因为你在定义的temp类型时int型的占四个字节,arr[j]是char型的占一个字节,char可以自动转换成int型的,但是int型的不能自动转换成char型的,这样会引起数据丢失,int型数据转换成char型数据时要强制类型转换
  22.                             }
  23.                     }
  24.             }
  25.     }

  26. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 注释很有帮助。

查看全部评分

回复 使用道具 举报
lichao 发表于 2013-12-19 20:56
我加了注释,希望对你有帮助

懂了。谢谢
回复 使用道具 举报
同学,回复贴入代码是用的那个文本工具?
新手各种不专业
回复 使用道具 举报
FFF 金牌黑马 2013-12-20 10:44:30
地板
小马过河 发表于 2013-12-20 06:03
同学,回复贴入代码是用的那个文本工具?
新手各种不专业

用表情左边的"<>"符号的工具
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马