求助 JAVA 软件工程师 一面试题 一数组 {'f','F','K','A','a','j','z'}要求排序 为 {'A','a','F','f','j','K','z'} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public int compareTo(char c1, char c2) { if(Math.abs(c1 - c2) == 32) { return c2 - c1; } if(c1 >= 'a' && c1 <='z' ) { c1 = (char)(c1 - 32); } if(c2 >= 'a' && c2 <='z' ) { c2 = (char)(c2 - 32); } return c1 - c2; } 哦, 忘了.第一个if中if(Math.abs(c1 - c2) == 32) 还要判断 c1和c2在 'a'到'z'以及'A'到'Z'之间 public class VA { public static void main(String [] args) { String [] str = {"a","b","A","e"}; VA.compositor(str); } public static void compositor(String [] str){ String st = "AaBbCcDdEeFfGgKkLlMm"; String temp = ""; for(int i=0; i<str.length; i++) { for(int b=i; b<str.length; b++) { if(st.indexOf(str[i])>st.indexOf(str[b])) { temp = str[i]; str[i] = str[b]; str[b] = temp; } } } for(int i=0; i<str.length; i++) { System.out.println(str[i]); } }} package algorithm;public class SpecialSort { static char[] array = {'f','F','K','A','a','j','z'}; //static char[] array = {'F','c'}; public static void main(String[] args) { System.out.println("before sort"); for(char a : array){ System.out.print(a+" "); } System.out.println(); bubble(array); System.out.println("after sort"); for(char a : array){ System.out.print(a+" "); } } private static void bubble(char[] array){ char temp; for (int i = 0; i < array.length - 1; i++) { for (int j = i + 1; j < array.length; j++) { // 左边的数是大写,右边的数是小写 if (array[i] >= 65 && array[i] <= 90 && array[j] >= 97&& array[j] <= 122) { //左边的数是R,右边的数是r/r+,位置不变 if (array[j] >= array[i] + 32) { continue; //左边的数是R,右边的数是r-,换位 } else { temp = array[i]; array[i] = array[j]; array[j] = temp; } } // 左边的数是小写,右边的数是大写 else if(array[i] >= 97 && array[i] <= 122 && array[j] >= 65&& array[j] <= 90){ //左边的数是r,右边的数是R+,位置不变 if(array[i]<array[j]+32){ continue; } //左边的数是r,右边的数是R/R-,换位 else { temp = array[i]; array[i] = array[j]; array[j] = temp; } } // 左边和右边的数都是大写或小写 else { if (array[i] > array[j]) { temp = array[i]; array[i] = array[j]; array[j] = temp; } } } } }} import java.util.Arrays;import java.util.Comparator;public class Temp{ public static void main(String args[]) { Character[] chs = {'f', 'F', 'K', 'A', 'a', 'j', 'z'}; Arrays.sort(chs, new Comparator<Character>() { public int compare(Character c1, Character c2) { char ch1 = Character.toUpperCase(c1); char ch2 = Character.toUpperCase(c2); if(ch1 == ch2) { return c1.charValue() - c2.charValue(); } else { return ch1 - ch2; } } }); for(char c: chs) { System.out.println(c); } }} 求推荐一本SSH2的开发项目实例尽量多的书籍! 有哪位大虾知道好点的UML论坛或者学习网站啊? ???、、、、用Java做出一个什么样的小软件,小工具,大家觉得有用呢??????? 求在JTable中实现向数据库添加、删除、修改数据功能的小例子 ireport总是多出一个空白页 这两个声明是不是完全一样的 JAVA中正则的使用 java连接sql server2000数据库最好的方式是什么? 谁知道在哪能下载《java2核心技术卷二》这本书,谁能告之,送分啊 java如何实现类似于Delphi中的DBGrid控件的功能? 无聊,出个题玩 测一下老紫竹的马甲
public int compareTo(char c1, char c2)
{
if(Math.abs(c1 - c2) == 32)
{
return c2 - c1;
}
if(c1 >= 'a' && c1 <='z' )
{
c1 = (char)(c1 - 32);
}
if(c2 >= 'a' && c2 <='z' )
{
c2 = (char)(c2 - 32);
}
return c1 - c2;
}
if(Math.abs(c1 - c2) == 32)
还要判断 c1和c2在 'a'到'z'以及'A'到'Z'之间
public static void main(String [] args) {
String [] str = {"a","b","A","e"};
VA.compositor(str);
}
public static void compositor(String [] str){
String st = "AaBbCcDdEeFfGgKkLlMm";
String temp = "";
for(int i=0; i<str.length; i++) {
for(int b=i; b<str.length; b++) {
if(st.indexOf(str[i])>st.indexOf(str[b])) {
temp = str[i];
str[i] = str[b];
str[b] = temp;
}
}
}
for(int i=0; i<str.length; i++) {
System.out.println(str[i]);
}
}
}
static char[] array = {'f','F','K','A','a','j','z'};
//static char[] array = {'F','c'};
public static void main(String[] args) {
System.out.println("before sort");
for(char a : array){
System.out.print(a+" ");
}
System.out.println();
bubble(array);
System.out.println("after sort");
for(char a : array){
System.out.print(a+" ");
}
}
private static void bubble(char[] array){
char temp;
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
// 左边的数是大写,右边的数是小写
if (array[i] >= 65 && array[i] <= 90 && array[j] >= 97&& array[j] <= 122) {
//左边的数是R,右边的数是r/r+,位置不变
if (array[j] >= array[i] + 32) {
continue;
//左边的数是R,右边的数是r-,换位
} else {
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
// 左边的数是小写,右边的数是大写
else if(array[i] >= 97 && array[i] <= 122 && array[j] >= 65&& array[j] <= 90){
//左边的数是r,右边的数是R+,位置不变
if(array[i]<array[j]+32){
continue;
}
//左边的数是r,右边的数是R/R-,换位
else {
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
// 左边和右边的数都是大写或小写
else {
if (array[i] > array[j]) {
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
}
}
import java.util.Arrays;
import java.util.Comparator;public class Temp
{
public static void main(String args[])
{
Character[] chs = {'f', 'F', 'K', 'A', 'a', 'j', 'z'};
Arrays.sort(chs, new Comparator<Character>()
{
public int compare(Character c1, Character c2)
{
char ch1 = Character.toUpperCase(c1);
char ch2 = Character.toUpperCase(c2);
if(ch1 == ch2)
{
return c1.charValue() - c2.charValue();
}
else
{
return ch1 - ch2;
}
}
});
for(char c: chs)
{
System.out.println(c);
}
}
}