黑马程序员技术交流社区

标题: 毕老师留的作业题,写了一下,总感觉没写完,麻烦进来..... [打印本页]

作者: 郑枫    时间: 2012-8-5 19:10
标题: 毕老师留的作业题,写了一下,总感觉没写完,麻烦进来.....
  1. import java.util.Arrays;
  2. class Demo2
  3. {
  4. public static void sop(String str)
  5. {
  6. System.out.println(str);
  7. }
  8. public static void main(String[] args)
  9. {
  10. String s1 = "12 0 99 -7 30 4 100 13";

  11. paixu(s1);
  12. }
  13. public static void paixu(String s )
  14. {
  15. //用空格把他们分隔开

  16. String [] str = s.split(" ");
  17. //String转化为int(数组)
  18. int [] arr = new int[str.length];

  19. for (int x = 0;x<str.length ;x++ )
  20. {
  21. arr[x] = Integer.parseInt(str[x]);
  22. }
  23. //排序
  24. Arrays.sort(arr);
  25. //int 转换String(数组)
  26. String [] aaa = new String[arr.length];

  27. for (int a = 0;a<arr.length ;a++ )
  28. {
  29. aaa[a]= Integer.toString(arr[a]);
  30. }

  31. dayin(aaa);

  32. }

  33. //数组转换为字符串

  34. public static void dayin (String [] arr)
  35. {
  36. for (int x=0;x<arr.length ;x++ )
  37. {
  38. if (x!=arr.length-1)
  39. {
  40. System.out.print(arr[x]+" ");
  41. }
  42. else
  43. System.out.println(arr[x]);
  44. }
  45. }
  46. }
复制代码
"12 0 99 -7 30 4 100 13"
要求对字符串中的数值进行排序。生成一个数值从小到大新字符串。
"-7 0 4 12 13 30 99 100"


思路
  1,用空格把他们切割开
  2,把String数组转换为int数组
  3,排序
  4,int数组转化为String数组

我打印了一下 结果也是  -7 0 4 12 13 30 99 100
可感觉写的不对

麻烦大神指点一下。



作者: 曹恒业    时间: 2012-8-5 19:17
一句感觉写的不对,估计大家都不知道楼主的问题在哪,既然是有疑惑,不妨把你的疑惑写清楚。。
作者: 郑枫    时间: 2012-8-5 19:30
曹恒业 发表于 2012-8-5 19:17
一句感觉写的不对,估计大家都不知道楼主的问题在哪,既然是有疑惑,不妨把你的疑惑写清楚。。 ...

编码写到最后,把String[] 打印出来了,结果也对得上,就是不知道对不对。
作者: hello world    时间: 2012-8-5 19:44
28.//int 转换String(数组)

29.String [] aaa = new String[arr.length];

30.

31.for (int a = 0;a<arr.length ;a++ )

32.{

33.aaa[a]= Integer.toString(arr[a]);

34.}

35.

36.dayin(aaa);

这不没有必要吧,StringBuffer sb =new StringBuffer; sb.append(arr[i]+"  ")就可以了,如果不想要最后一个空格,在调用sb.deleteCharAt(sb.length()-1)就可以了
作者: 黑马振鹏    时间: 2012-8-5 19:53
代码没问题,不过可以在变量定义上稍作改进,便于阅读 呵呵
作者: 曹恒业    时间: 2012-8-5 21:25
郑枫 发表于 2012-8-5 19:30
编码写到最后,把String[] 打印出来了,结果也对得上,就是不知道对不对。 ...

如楼上所说,代码功能上没问题,但是有很多地方可以优化,建议楼主多思考,这是一个可以加深理解的好机会!
作者: 郑枫    时间: 2012-8-6 09:11
曹恒业 发表于 2012-8-5 21:25
如楼上所说,代码功能上没问题,但是有很多地方可以优化,建议楼主多思考,这是一个可以加深理解的好机会 ...

{:soso_e115:} 好多代码知道,就是不知道怎么用。
作者: 郑枫    时间: 2012-8-6 09:11
黑马振鹏 发表于 2012-8-5 19:53
代码没问题,不过可以在变量定义上稍作改进,便于阅读 呵呵

嗯,试着修改一下
作者: 郑枫    时间: 2012-8-6 09:12
刘向阳 发表于 2012-8-5 19:44
28.//int 转换String(数组)

29.String [] aaa = new String[arr.length];

:)   嗯,我好好研究一下。
作者: 郑枫    时间: 2012-8-6 15:09
{:soso_e115:}  有人能写一下吗?  让我好好研究一番
作者: 李祖庆    时间: 2012-8-7 18:39
import java.util.*;

class TreeSetTest2
{
        public static void main(String[] args)
        {
                TreeSet ts = new TreeSet(new myCompare());

                String s = "90 -7 0 18 2 45 4";

                String[] str = s.split(" ");

                for(int x = 0 ; x < str.length ; x++)
                {
                        ts.add(str[x]);
                }

                Iterator it = ts.iterator();

                while(it.hasNext())
                {
                        sop(it.next());
                }
        }
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
}
class myCompare implements Comparator
{
        public int compare(Object o1 , Object o2)
        {
                String s1 = (String)o1;
                String s2 = (String)o2;
                int num = new Integer(Integer.parseInt(s1)).compareTo(new Integer(Integer.parseInt(s2)));
                return num;
        }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2