String str="I am learning java programming";
StringTokenizer st=new StringTokenizer(str," ");
while(st.hasMoreTokens())
{
      System.out.println(st.nextToken());
}
这样不就可以了吗

解决方案 »

  1.   

    建议用String的substring方法取出每个单词的头字母再比较
      

  2.   

    if(arr[j].compareTo(arr[i])<0)---------->if(arr[j].toLowerCase().compareTo(arr[i].toLowerCase())<0)
      

  3.   

    我都改成这样了,怎么还不行 啊
    import java.util.StringTokenizer;
    public class stringdemo1{ public static void main(String[]args)
    {
    String str="I am learning java programming";
    StringTokenizer st=new StringTokenizer(str," ");
    String[]arr=new String[st.countTokens()];

    for(int i=0;i<arr.length;i++)
    arr[i]=st.nextToken();


    for (int i=0;i<arr.length;i++) for(int j=i+1;j<arr.length;j++)
    {
    String temp;
    int k=0;
    if(arr[i].length()>=arr[j].length())
    k=arr[j].compareTo(temp=arr[i].substring(0,arr[j].length()));
    else 
    k=-arr[i].compareTo(temp=arr[j].substring(0,arr[i].length()));
    if(k<0)
    {

    temp=arr[i];
    arr[i]=arr[j];
    arr[j]=temp;
    }}
    for(int i=0;i<arr.length;i++)
    System.out.println(arr[i]);
    }
    }