2 sinat 25234961 sinat_25234961 于 2016.05.04 16:00 提问

JAVA String类型是Comparable?

学习算法,想对标准输入的字符串进行排序,但是编译会报错
3个子函数,输入类型不是Comparable,求助如何解决?
The method sort(Comparable[]) in the type Selection is not applicable for the arguments (String)

import java.util.Scanner;

public class Selection {

    public static void sort(Comparable[] a){
        int N=a.length;
        for(int i=0;i<N;i++)
        {
            int min=i;
            for(int j=i+1;j<N;j++)
            {
                if(less(a[j],a[min])) 
                    min=j;
                exch(a,i,min);
            }

        }
    }

    private static boolean less(Comparable v,Comparable w){
        return v.compareTo(w)<0;
    }
    private static void exch(Comparable[] a,int i,int j){
        Comparable t=a[i]; a[i]=a[j];a[j]=t;
    }
    private static void show(Comparable[] a){
        //在单行中打印数组
        for(int i=0; i<a.length;i++)
            System.out.print(a[i]+"");
        System.out.println();

    }

    public static boolean isSorted(Comparable[] a){
        //测试数组是否有序
        for(int i=1;i<a.length;i++)
            if(less(a[i],a[i-1])) return false;
        return true;
    }
    public static void main(String[] args){
        //从标准输入读取字符串,将它们排序并输出
         System.out.print("输入");
         Scanner s = new Scanner(System.in);
         String line=s.nextLine();
         System.out.println("输入的是"+line);                

** sort(line);

assert isSorted(line);

show(line);**

    }           

}

2个回答

w172087242
w172087242   Ds   Rxr 2016.05.04 16:53
已采纳

你的sort接收的是数组,而你传输的是String;

public final class String
implements java.io.Serializable, Comparable, CharSequence

    可以看出String是Comparable的,如果你的sort方法是下面这样就可以
    public static void sort(Comparable a) { .. }
w172087242
w172087242 回复sinat_25234961: String是Comparable的,Comparable<String> c = "123"; Comparable<String>[] cc = new String[]{"123","1233"};是可以编译的,源码解释的很清楚的。
一年多之前 回复
sinat_25234961
sinat_25234961 谢谢了,问题已经解决了,是您所说的字符串数组和字符串的问题,不过String好像不是Comparable的,我是把String变成Char[]再变成String【】解决的
一年多之前 回复
CSDNXIAOD
CSDNXIAOD   2016.05.04 16:12

Java 之 String 类型
java 判断对象是否为String类型
java 解析String类型的xml
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!