黑马程序员技术交流社区
标题:
字符串排序
[打印本页]
作者:
Emperors
时间:
2014-4-19 17:11
标题:
字符串排序
本帖最后由 Emperors 于 2014-4-19 19:50 编辑
请把字符串的数组排序并输出一个字符串???????????
package cn.cast;
public class Test02 {
/*
* 请把字符串的数组排序并输出一个字符串
* */
public static void main(String[] args) {
//按照空格键切割。得到一个字符串数组并输出一个字符串
String s = "4 6 1 9 7 34 56 23";
String [] strArray = s.split(" ");
// 定义一个int数组,把字符数组中 的每一个元素赋值给int数组中。
int [] arr = new int[strArray.length];
for(int x=0;x<arr.length;x++){
arr[x] = Integer.parseInt(strArray[x]);
}
// 对int数组排序
for(int x = 0;x<arr.length-1;x++ ){
for (int y = 0;y<arr.length-1-x;y++){
if(arr[y]>arr[y+1]){
int temp = arr[y];
arr[y]=arr[y+1];
}
}
}
// 把int数组的值转换成一个字符串。
StringBuffer sd = new StringBuffer();
for(int x = 0;x<arr.length;x++){
sd.append(arr[x]);
if (x==arr.length-1){
sd.append(arr[x]);
}else{
sd.append(arr[x]).append(" ");
}
}
String result = sd.toString();
System.out.println("result:"+result);
}
}
而我打印的结果却是:result:11 11 11 77 77 2323 2323 2323
这是为什么呢 ???? 这结果令人头疼呀!!!!!!!
请神医妙手回春啊
作者:
月光海
时间:
2014-4-19 17:37
代码已经改好,请看代码中说明
package awtDemo;
public class Test {
/*
* 请把字符串的数组排序并输出一个字符串
* */
public static void main(String[] args) {
//按照空格键切割。得到一个字符串数组并输出一个字符串
String s = "4 6 1 9 7 34 56 23";
String [] strArray = s.split(" ");
// 定义一个int数组,把字符数组中 的每一个元素赋值给int数组中。
int [] arr = new int[strArray.length];
for(int x=0;x<arr.length;x++){
arr[x] = Integer.parseInt(strArray[x]);
}
// 对int数组排序
for(int x = 0;x<arr.length-1;x++ ){
for (int y = 0;y<arr.length-1-x;y++){
if(arr[y]>arr[y+1]){
int temp = arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;//少了这一句
}
}
}
// 把int数组的值转换成一个字符串。
StringBuffer sd = new StringBuffer();
for(int x = 0;x<arr.length;x++){
//sd.append(arr[x]);多了这一句
if (x==arr.length-1){
sd.append(arr[x]);
}else{
sd.append(arr[x]).append(" ");
}
}
String result = sd.toString();
System.out.println("result:"+result);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2