Java排序字母表并获取位置编号

时间:2014-01-08 05:14:59

标签: java sorting

我用输出' act'编写了以下代码,我想将其转换为数字' a'到1和' c'到2和'到3。

public static void main(String[] args) {

    String s1 = "cat";
    char[] arr;
    arr = s1.toCharArray();
    Arrays.sort(arr);
    s1 = new String(arr);
    System.out.println(s1);

}

输出

act

3 个答案:

答案 0 :(得分:0)

对数组进行排序后,您可以简单地遍历每个数组元素并打印出每个数组元素的索引。

for(int i = 0; i < arr.length; i++) {
    System.out.println(arr[i] + " is at the position " + (i + 1));
}

请注意,您需要使用i + 1,因为数组具有基于 0的索引。

答案 1 :(得分:0)

使用Ascii值

public class Ssort 
{
    public static void main(String[] args) 
    {
        Scanner s=new Scanner(System.in);
        String s1=s.nextLine();
        String s2=s1.toLowerCase();
        char []a=s2.toCharArray();
        int h,g = 0,l=0;
        int b=(int)a[0];
        System.out.println();
        for(int k=0;k<a.length;k++)
        {
            for(h=1+k;h<a.length;h++)
            {
                if(b>(int)a[h])
                {   
                    b=a[h];
                    char temp=a[h];
                    a[h]=a[k];
                    a[k]=temp;
                }

            }
        if(l<a.length-1)
        {
                b=a[++l];
        }
        }

        for(int j=0;j<a.length;j++)
        {
            System.out.print(a[j]);
        }
    }

}

使用字母排序

public class Hi1 {


    public static void main(String[] args)
    {
        String s1,s3;
        java.lang.String s2;
        int i,j;
        Scanner s=new Scanner(System.in);
        s1=s.nextLine();
        s2="abcdefghijklmnopqrstuvwxyz";
        s3=s1.toLowerCase();
        char [] c=s3.toCharArray();
        char [] c1=s2.toCharArray();
        for(i=0;i<c1.length;i++)
        {
            for(j=0;j<c.length;j++)
            {
                if(c1[i]==c[j])
                {
                    System.out.print(c[j]);
                }
                else
                {
                    continue;
                }
            }
        }
        //System.out.println(c[0]);
    }

}

答案 2 :(得分:0)

尝试,

String s1 = "act";
for(char c :s1.toCharArray())
     System.out.println(s1.indexOf(c)+1);