黑马程序员技术交流社区
标题:
帮我看看哪里出错了
[打印本页]
作者:
李罡
时间:
2013-3-15 10:30
标题:
帮我看看哪里出错了
本帖最后由 李罡 于 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
呃,到底问题出在哪呢,找了好几遍都没发现。。。
作者:
曹睿翔
时间:
2013-3-15 11:10
09.class TestTotal
10.{
11.public static void main(String[] args)
12.{
13.String str;
14.Scanner sc=new Scanner(System.in);
15.sop("请输入一个字符串");
16.str=sc.next();
//这里换成sc.nextLine()就ok了,
17.sop("得到的字符串为:"+method_03(str," "));
18.}
19.public static void sop(Object obj)
20.{
21.System.out.println(obj);
22.}
作者:
李罡
时间:
2013-3-15 11:16
。。。我去,竟然是nextLine()。。。。。
作者:
李罡
时间:
2013-3-15 11:17
刘海浩 发表于 2013-3-15 11:04
花了我好长时间啊!!
作者:
薛飞
时间:
2013-3-15 11:29
第16行改为:str=sc.nextLine();就O啦:)
作者:
曹睿翔
时间:
2013-3-15 21:41
曹睿翔 发表于 2013-3-15 11:10
09.class TestTotal
10.{
ok,谢谢斑竹给面子!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2