public class CompareString {
/**
* @param args
*/
public static void main(String[] args) {
String a = "banan";
String b = "banana";
byte[] tempa = a.toLowerCase().getBytes();
byte[] tempb = b.toLowerCase().getBytes();
int leght = a.length() < b.length() ? a.length() : b.length();
boolean flag = true;
for (int i = 0; i < leght; i++) {
if (tempa[i] > tempb[i]) {
System.out.println("a>b");
flag = false;
break;
} else if (tempa[i] < tempb[i]) {
System.out.println("a<b");
flag = false;
break;
}
}
if (flag) {
if (b.contains(a)) {
System.out.println("a>b");
} else if (a.contains(b)) {
System.out.println("a<b");
}
}
}
}
追问谢谢 不过能不能不要用byte的方法?还没学过~就最简单的char.At 可以吗?
不好意思我是小白~~
追答可以的,java中char类型是可以直接用逻辑运算符比较大小的
追问那在你这个基础上 不用bytes 直接用charAt 应该怎么写呢?
追答public class CompareString {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new CompareString().compare("banan", "banana"));
}
public int compare(String a, String b) {
int result = 0;
a = a.toLowerCase();
b = b.toLowerCase();
int leght = a.length();
if(a.length() < b.length()){
leght = a.length();
result = 1;
}else if(a.length() > b.length()){
leght = b.length();
result = -1;
}
for (int i = 0; i < leght; i++) {
if (a.charAt(i) > b.charAt(i)) {
result = 1;
break;
} else if (a.charAt(i) < b.charAt(i)) {
result = -1;
break;
}
}
return result;
}
}