6.对多个字符串进行排序,不能使用jdk现成对类。在排序中,比如字符串”Bc”,”Ad”,”ac”,”hello,”X man”,”little”,”During”,”day”能够排序成”Ad”,”ac”,”Bc”,”During”,”day”,”Hello”,”little”,”X man” 如 先大写A小写a 大写B小写b
解决方案 »
- 表达能力不好,只能笼统地说是J2SE连接数据库的问题 麻烦大家帮我解决一下 谢谢
- java里面有没有exit()机制?
- java多任务多线程如何终止指定的线程!
- 请教插入数据库乱码的问题(插入日文全变成问号),谢谢!
- Timer 如何让他延迟3秒呢?迷茫.差一句代码.添上去有错
- 请教高手,在线等。。。把画图 jpanel 放在jscrollPane 为什么不起作用
- double运算 3 * 0.4 = 1.2000000000000002 这是为什么?
- [遇到这个问题的人多吗?]Connection reset by peer: JVM_recv in socket input stream read
- 我的三星152S每次看到,都有一种惊艳的感觉,大力推荐!!!!!!顺便问个小问题
- 给我一个JCREATOR的注册码?
- 出现java 运行时错误,怎么解决
- Javase,看视频自学,但是那么多类吗,怎么可能记得住!
package com.js.task.util;import java.io.IOException;
import java.util.Arrays;public class Test9 {
public static void main(String args[]) throws IOException,
InterruptedException {
String[] sarr = { "Bc", "Ad", "ac", "hello", "X man", "little",
"During", "day" };
String temp = "";
for (int i = 0; i < sarr.length; i++) {
for (int j = i + 1; j < sarr.length; j++) {
if (compare(sarr[i], sarr[j]) > 0) {
temp = sarr[i];
sarr[i] = sarr[j];
sarr[j] = temp;
}
}
}
System.out.println(Arrays.toString(sarr));
} public static int compare(String str1, String str2) { char[] arr1 = str1.toCharArray();
char[] arr2 = str2.toCharArray();
int i = 0;
int arr1_len1 = arr1.length;
int arr2_len2 = arr2.length;
int len = arr1_len1 < arr2_len2 ? arr1_len1 : arr2_len2;
while (i < len) {
char c1 = arr1[i], c2 = arr2[i];
char c1_ = (char) (c1 >= 'a' ? c1 - ('a' - 'A') : c1);
char c2_ = (char) (c2 >= 'a' ? c2 - ('a' - 'A') : c2);
if (c1_ == c2_) {
if (c1 != c2)
return c1 - c2;
} else
return c1_ - c2_;
i++;
}
if (arr1_len1 == arr2_len2)
return 0;
else if (arr1_len1 > arr2_len2)
return arr1[len];
else
return -arr2[len]; }
}
public static List<String> tSort(List<String> s){
if(s.size()<=1) return s;
List<String> pre = tSort(s.stream().filter(e -> lt(e,s.get(0))).collect(Collectors.toList()));
List<String> lst = tSort(s.stream().filter(e -> lt(s.get(0),e)).collect(Collectors.toList()));
pre.add(s.get(0));
pre.addAll(lst);
return pre;
}
public static boolean lt(String a,String b){
String a2 = a.toUpperCase();
String b2 = b.toUpperCase();
for(int i=0;i<a.length() && i<b.length();i++){
if(a2.charAt(i)!=b2.charAt(i)){
return a2.charAt(i)<b2.charAt(i);
}
if(a.charAt(i) != b.charAt(i)){
return b.charAt(i)>a.charAt(i);
}
}
return false;
}
要学会搜索问题。。