当前位置: 代码迷 >> Java相关 >> 请问字符排序为什么不能排出来?
  详细解决方案

请问字符排序为什么不能排出来?

热度:53   发布时间:2005-12-30 13:26:00.0
请问字符排序为什么不能排出来?
请问字符排序为什么不能排出来?代码如下:
public class ChSort
{
public static void main(String [] args)
{
String str="kbcafeg";
char s;
int i,j;
char ch[]=new char[str.length()];
for(i=0;i<str.length();i++)
{
ch[i]=str.charAt(i);
for(j=i+1;j<=str.length()-1;j++)
{
ch[j]=str.charAt(j);
if(ch[i]>ch[j])
{
s=ch[i];
ch[i]=ch[j];
ch[j]=s;
}


}


}
System.out.println(ch);



}
}
搜索更多相关的解决方案: 字符  public  void  String  main  

----------------解决方案--------------------------------------------------------
你是要按什么顺序排序啊??
顺便问一下,你是男是女啊??
----------------解决方案--------------------------------------------------------
就是嘛,这样顺眼多了
----------------解决方案--------------------------------------------------------
以下是引用天涯海角在2005-12-30 13:26:00的发言:
请问字符排序为什么不能排出来?代码如下:
public class ChSort
{
public static void main(String [] args)
{
String str="kbcafeg";
char s;
int i,j;
char ch[]=new char[str.length()];
for(i=0;i<str.length();i++)
{
ch[i]=str.charAt(i);
for(j=i+1;j<=str.length()-1;j++)
{
ch[j]=str.charAt(j);
if(ch[i]>ch[j])
{
s=ch[i];
ch[i]=ch[j];
ch[j]=s;
}


}


}
System.out.println(ch);



}
}

是第二个for循环有逻辑错吧 你想想 当循环第二次的时候 j=3 但 i 还是等于0 但是 第一次循环的时候 第二个和第一个已经排好了
----------------解决方案--------------------------------------------------------

谢谢,已经编译成功。
public class ChSort
{

public static void main(String[] args)
{
//给定一个字符串"newsthua",并进行排序(由小到大)。
String str=new String("newsthua");
char ch;
int i;
char[] s=new char[str.length()];
for(i=0;i<str.length();i++)
{
s[i]=str.charAt(i);
}
for( i=0;i<str.length()-1;i++)
{
for(int j=str.length()-1;j>=i;j--)
{
if(s[i]>s[j])
{
ch=s[i];
s[i]=s[j];
s[j]=ch;
}
}
}
System.out.println("排序后:");
System.out.println(s);
}
}


----------------解决方案--------------------------------------------------------
  相关解决方案