Java用compareTo对String数组进行排序
privatestaticvoidsort_string(String[]str){inti,j;Stringtemp;for(i=0;i<str.length-2;i+...
private static void sort_string(String [] str){
int i,j;
String temp;
for(i=0;i<str.length-2;i++){
for(j=str.length-1;j>i;j--){
if(str[j-1].compareTo(str[j])<0)
{
temp = str[j];
str[j] = str[j-1];
str[j-1] = temp;
}
}
}
}
我写的是冒泡排序,但是我将String类型转换成int类型是,排序是正确的。。。
这个是int的排序
private static void sort_int(int[] a){
int i,j;
int temp;
for(i=0;i<a.length-2;i++){
for(j=a.length-1;j>i;j--){
if(a[j]>a[j-1])
{
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
}
请输入一串数字,用","隔开:
13,98,28,34,5,7,3
string:13 28 3 34 5 7 98
int:98 34 28 13 7 5 3
这个是结果 展开
int i,j;
String temp;
for(i=0;i<str.length-2;i++){
for(j=str.length-1;j>i;j--){
if(str[j-1].compareTo(str[j])<0)
{
temp = str[j];
str[j] = str[j-1];
str[j-1] = temp;
}
}
}
}
我写的是冒泡排序,但是我将String类型转换成int类型是,排序是正确的。。。
这个是int的排序
private static void sort_int(int[] a){
int i,j;
int temp;
for(i=0;i<a.length-2;i++){
for(j=a.length-1;j>i;j--){
if(a[j]>a[j-1])
{
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
}
请输入一串数字,用","隔开:
13,98,28,34,5,7,3
string:13 28 3 34 5 7 98
int:98 34 28 13 7 5 3
这个是结果 展开
展开全部
字符串是按字典排序的,
即你这组数据他比较的时候是这样比较的位数不同的都是补齐的。
即 13,98,28,34,50,70,30
望lz采纳,3ks
即你这组数据他比较的时候是这样比较的位数不同的都是补齐的。
即 13,98,28,34,50,70,30
望lz采纳,3ks
追问
我改了一下if(str[j-1].compareTo(str[j])0)
13,98,28,34,5,7,3
string:98 7 5 34 3 13 28
int:98 34 28 13 7 5 3
结果就这样了。。。就是按你的说13,是在28前面的啊
追答
lz您的冒泡排序写的有问题:
应该如下:你试试
private static void sort_string(String[] str) {
int i, j;
String temp;
for (i = 0; i i; j--) {
if (str[j - 1].compareTo(str[j]) > 0) {
temp = str[j];
str[j] = str[j - 1];
str[j - 1] = temp;
}
}
}
}
LZ如果你是想排序数字的顺序话在比较的时候最好转化成数字类型那样就没问题了
在比较的时候:
if(str[j-1].compareTo(str[j])Integer.valueOf(str[j]))
展开全部
String 的比较是一个一个字符比较,发现有不同的字符时,比较他们的ascii码。所以你这样写是不对的。
解决办法:
将
if(str[j-1].compareTo(str[j])<0)
变成
if(Integer.valueOf(str[j-1])>Integer.valueOf(str[j]))
即可
解决办法:
将
if(str[j-1].compareTo(str[j])<0)
变成
if(Integer.valueOf(str[j-1])>Integer.valueOf(str[j]))
即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你是针对数字型的String进行排序,在比较时,把他们转换成int型在比较就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询