{
public static void main(String [] args)
{
String str="kbcafeg";
StringBuffer s1=new StringBuffer(str);
s1.reverse();
System.out.println(s1);
char s;
int i,j,n;
n=s1.length();
char ch[]=new char[n];
for(i=0;i<s1.length()-1;i++)
{
ch[i]=s1.charAt(i);
for(j=i+1;j<s1.length();j++)
{
ch[j]=s1.charAt(j);
if(ch[i]>ch[j])
{
s=ch[i];
ch[i]=ch[j];
ch[j]=s;
}
}
System.out.println(ch);
}
System.out.println(ch);
}
}
怎么不能排序呀???????
----------------解决方案--------------------------------------------------------
因为在第一次比较后,内层循环还没有执行完,程序不是你想象的那样,内循环一次,外循环一次
----------------解决方案--------------------------------------------------------
第一次比较后,内层循环还没有执行完???
能不能给出正解
----------------解决方案--------------------------------------------------------
谈不上正解,我是这样写的
import java.io.*;
import java.util.*;
public class Test {
public String Sort(String input) {
char[] ch = input.toCharArray();
Arrays.sort(ch);
return new String(ch);
}
public static void main(String[] args) throws IOException {
System.out.println("请输入需要排序的字符串");
BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
System.out.println("排序后为:" + new Test().Sort(read.readLine()));
read.close();
}
}
----------------解决方案--------------------------------------------------------
在java里给出排序的方法还是尽量用这个sort
----------------解决方案--------------------------------------------------------
package 库中乐;
import java.util.*;
public class StringTest{
/**
* 用StringTokenizer()方法来取字符串的数字,然后进行排序
*/
String s="21,123,432,2,3,34,234";
public void getResult(){
StringTokenizer st=new StringTokenizer(s,",");
int len=st.countTokens();
String a[]=new String[len];
int k=0;
int aa[]=new int[a.length];
while(st.hasMoreTokens()){
a[k]=st.nextToken();
k++;
}
for(int i=0;i<a.length;i++){
aa[i]= Integer.parseInt(a[i]);
}
Arrays.sort(aa);
for(int i=0;i<aa.length;i++){
System.out.println(aa[i]);
}
}
public static void main(String[] args) {
new StringTest().getResult();
}
}
----------------解决方案--------------------------------------------------------