本帖最后由 李罡 于 2013-3-15 11:30 编辑
- 要求对字符串中的数值进行排序。生成一个数值从小到大新字符串。
- 例如:输入"12 0 99 -7 30 4 100 13"
- 返回"-7 0 4 12 13 30 99 100"
- 代码如下:
- import java.util.*;
- class TestTotal
- {
- public static void main(String[] args)
- {
- String str;
- Scanner sc=new Scanner(System.in);
- sop("请输入一个字符串");
- str=sc.next();
- sop("得到的字符串为:"+method_03(str," "));
- }
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- public static String method_03(String str,String reg)///第三题
- {
- //用空格分割
- String[] arr=str.split(reg);
- //将字符串数组转成整形数组
- int[] arr1=stringToIntArray(arr);
- //排序
- Arrays.sort(arr1);
- //将整形数组转成字符串并用空格相连,再返回
- return toString(arr1,reg);
- }
- public static int[] stringToIntArray(String[] arr)//将字符串数组转成整形数组
- {
- int[] temp=new int[arr.length];
- for (int x=0;x<arr.length ;x++ )
- {
- temp[x]=Integer.parseInt(arr[x]);/////字符串转成整数
- }
- return temp;
- }
- public static String toString(int[] arr1,String reg)//将整形数组转成字符串并用空格相连
- {
- StringBuffer sb=new StringBuffer();
- for (int x=0;x<arr1.length ;x++ )
- {
- if(x==arr1.length-1)
- sb.append(arr1[x]);
- else
- sb.append(arr1[x]+reg);
- }
- return sb.toString();
- }
- }
复制代码 请输入一个字符串
12 0 99 -7 30 4 100 13
得到的字符串为:12
呃,到底问题出在哪呢,找了好几遍都没发现。。。
|