您的位置:首页 > 编程语言 > Java开发

对多个字符串进行排序,用Java语言实现,不能使用现有的类

2015-03-04 15:45 453 查看
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class StringCmp {

static String[] strs = null;
public static void order(String[] strs){

for(int i = 0 ; i < strs.length - 1; i++){

for(int j = 0 ; j < strs.length - 1 - i ; j++ ){

if(compare(strs[j],strs[j+1])){
exchange(j,j+1);
}
}
}
}

public static boolean compare(String str1 , String str2){

char[] chars1 = str1.toCharArray();
char[] chars2 = str2.toCharArray();
int lenMin = Math.min(chars1.length, chars2.length);
for(int i = 0 ; i < lenMin ; i++){
int charToSmall1 = (chars1[i] > 96)?chars1[i] - 96: chars1[i] - 64;
int charToSmall2 = (chars2[i] > 96)?chars2[i] -96: chars2[i] - 64;
if(charToSmall1 == charToSmall2){
if(chars1[i] > chars2[i]){
return true;
}else if(chars1[i] < chars2[i]){
return false;
}else{
continue;
}
}else{
if(charToSmall1 > charToSmall2){
return true;
}else{
return false;
}
}
}
return false;
}
public static void exchange(int i , int j){
String tmp;
tmp = strs[i];
strs[i] = strs[j];
strs[j] = tmp;
}
public static void main(String[] args) {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

try {
strs = br.readLine().split(" ");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

for(String tmp : strs){
System.out.print(tmp + " ");
}
System.out.println();
order(strs);
for(String tmp : strs){
System.out.print(tmp + " ");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐