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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我现在有一个字符串"23 98 71 54 60”请你想办法,
把这个字符串变成如下字符串:“23 54 60 71 98“。

15 个回复

正序浏览
学习一下
回复 使用道具 举报
看集合框架那一块
回复 使用道具 举报
用空格切割的到字符串数组,字符串数组转成int数组,排序,int数组拼接。
回复 使用道具 举报
Dark县令 发表于 2015-3-28 23:59
就是用for排序就行了

这是字符串不是int型数据
回复 使用道具 举报
1.用空格将字符串分割split(" ")切割成字符串数组   2.对数组进行排序  3. 将数组转换成字符串输出,代码我就不帮你实现了哈
回复 使用道具 举报
这个排序就可以了啊
回复 使用道具 举报
黑马94那么拽 来自手机 中级黑马 2015-3-30 00:37:21
10#
看毕老师的视频API中的基本数据类型对象包装类练习…
回复 使用道具 举报
自己的一点想法,基本和楼上一致。

  1. /*
  2. 需求:
  3. 有一个字符串
  4. 请你想办法,把这个字符串变成如下字符串:“23 54 60 71 98“。

  5. 思路:1.定义字符串存放目标字符串;
  6. 2.以空格切割字符串并转存为int型数组;
  7. 3.排序
  8. 4.将排列好的数字再转存为字符串
  9. 5.将字符串调整为要求的格式
  10. */

  11. class  StringToInt
  12. {
  13.         public static void main(String[] args)
  14.         {
  15.                 String s = "23 98 71 54 60";//定义s存放原字符串
  16.                
  17.                 String[] arrS = new String[5];//定义字符数组,存放切割之后的字符串
  18.                 arrS = s.split(" ");//切割字符串,存储在字符串数组中

  19.                 int[] arr = new int[5];//定义int型数组
  20.                
  21.                 //将切割后的字符串转化成数字
  22.                 for (int i=0;i<5 ;i++ )
  23.                 {
  24.                         arr[i] = Integer.parseInt(arrS[i]);
  25.                 }
  26.                 //输出转化后的数字
  27.                 for (int i=0;i<arrS.length ;i++ )
  28.                 {
  29.                         System.out.println(arr[i]);
  30.                 }
  31.                 System.out.println("---------------");

  32.                 //对切割后的数字排序,for循环嵌套
  33.                 for(int i=0;i<arr.length;i++)
  34.                 {
  35.                         for (int j=0;j<arr.length ;j++ )
  36.                         {
  37.                                 if (arr[i]<arr[j])
  38.                                 {
  39.                                         int temp = arr[i];
  40.                                         arr[i] = arr[j];
  41.                                         arr[j] = temp;
  42.                                 }
  43.                         }
  44.                        
  45.                 }
  46.                 //输出排序后的数字
  47.                 for (int i=0;i<arr.length;i++ )
  48.                 {
  49.                         System.out.println(arr[i]);
  50.                 }


  51.                 //创建字符串缓冲区
  52.                 StringBuffer sb = new StringBuffer();
  53.                 //将排好序的数字加入到缓冲区
  54.                 for (int i=0;i<arr.length;i++ )
  55.                 {
  56.                         if(i==0||i==arr.length-1)
  57.                                 sb.append(arr[i]);
  58.                         else
  59.                                 sb.append(" "+arr[i]+" ");

  60.                 }
  61.                 //将缓冲区的字符串存入字符串变量
  62.                 String s1 = new String(sb.toString());
  63.                 System.out.println("---------------");
  64.                 System.out.println(s1);

  65.         }
  66. }
复制代码


希望对你有用~~
回复 使用道具 举报 1 0
public class Test {

        public static void main(String[] args) {
                String string = "23 98 71 54 60";
                String[] data = string.split(" ");
                int[] num = new int[data.length];
                for (int i = 0; i < num.length; i++) {
                        num[i] = Integer.parseInt(data[i]);
                }
                Arrays.sort(num);
                StringBuilder builder = new StringBuilder();
                for (int i = 0; i < num.length; i++) {

                        if (i != num.length - 1) {
                                builder.append(String.valueOf(num[i]) + " ");
                        } else {
                                builder.append(String.valueOf(num[i]));
                        }
                }
                System.out.println(builder.toString());
        }

}
回复 使用道具 举报
可能写的比较复杂

/*
* 思路: 1.将字符串分割,存放入整形数组中
*     2.将整型数组仅进项排序
*     3将排序后的数组加入空格重新组合,
*     4,去除多余的空格
* */
class   sort
{
        public static void main(String[] args)
        {
                String s="23 98 71 54 60"; //将原来字符串存入到string中
                String[] s1=new String[5];//创建一个字符型数组用于存储切割后的字符串
                s1=s.split(" ");//将字符串切割,存储在字符串数组中
                int[] arr=new int[5];  //创建一个整形数组存储整形数据
               
                 for(int i=0;i<5;i++)
                {arr[i]=Integer.parseInt(s1[i]);}//用循环将每个字符串转换成整形数据,存入整形数组中
sort(arr);//调用静态方法将整型数组排序
StringBuffer sb=new StringBuffer();//创建一个缓冲字符串
for(int i=0;i<5;i++)   //将排序后的数组存入到缓冲字符串中,每个变量后加空格隔开
                {sb.append(arr[i]+" ");   }
String s2=new String(sb.toString()); //将缓冲字符串中的数据存入一个字符串变量中
String s3=s2.trim();//将字符内的边界的空格去除

System.out.print(s3); //输出结果
        }
        //将传入的数组进行排序
public static void sort(int[] arr){
        int temp;
        for(int i=0;i<5;i++)
        {for(int j=0;j<5;j++)
        {if(arr[i]>arr[j]){
        temp=arr[i];
        arr[i]=arr[j];
                arr[j]=temp;
        }
        }
        }
}
}

回复 使用道具 举报
。。。就是排序嘛。。。以空格切割完,再进行排序。。。
回复 使用道具 举报
用空格切割以后会返回一个String数组,遍历转成integer类型进行排序就可以了
回复 使用道具 举报
就是用for排序就行了
回复 使用道具 举报
就是排序.
回复 使用道具 举报
以空格切割 然后变成int 排序 然后拼在一起就行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马