本帖最后由 汪平乐 于 2013-2-19 18:23 编辑
在毕老师视频中有这样的一道作业题:
"12 0 99 -7 30 4 100 13"
要求对字符串中的数值进行排序。生成一个数值从小到大新字符串。
"-7 0 4 12 13 30 99 100"
思路:
1,字符串变成字符数组。
2,对数组排序,选择,冒泡,Arrays.sort();
3,将排序后的数组变成字符串。
然后自己做了,发现自己的思路是4步完成的,所以找个高手把我的代码优化下或者是给我简单高效的代码学习{:soso_e181:}...- class StringTest
- {
- public static void main(String[] args)
- {
-
-
- String s = "12 0 99 -7 30 4 100 13";
- sop("排序前:"+s);
- // 将字符串转换成整形数组
- int[] arr = transformInt(s);
- //对整形数组进行冒泡排序
- bubbleInt(arr);
- //将排序好的整形数组转换成字符数组
- String[] s1 = resultString(arr);
- //将字符数组变成字符串
- String s2 = getString(s1);
- sop("排序后:"+s2);
- }
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
-
- public static int[] transformInt(String str)
- {
- String[] arr = str.split(" ");
- int[] transform = new int[arr.length];
- for (int i = 0; i < arr.length; i++)
- {
- transform[i] =Integer.parseInt( arr[i] );
- }
- return transform;
- }
- public static int[] bubbleInt(int[] transform)
- {
- int temp =0;
- for (int x=0; x<transform.length-1 ; x++)
- {
- for (int y=0; y<transform.length-x-1 ; y++ )
- {
- if (transform[y] > transform[y+1])
- {
- temp = transform[y];
- transform[y] = transform[y+1];
- transform[y+1] = temp;
- }
- }
- }
- return transform;
- }
-
- public static String[] resultString (int[] arr)
- {
- String[] ss1 = new String[arr.length];
- for (int i = 0; i < arr.length; i++)
- {
- ss1[i] = String.valueOf( arr[i] );
- //System.out.println("s[" + i + "]=" + s[i]);
- }
- return ss1;
- }
- public static String getString(String[] args)
- {
- String ss2="";
- for(int i=0;i<args.length;i++)
- {
- ss2+=(String)args[i] + " ";
- }
- return ss2;
- }
- }
复制代码 |
|