我应该自己做比较方法。以下是说明
“其中s1和s2是字符串,b是整数类型,如果两个字符串相等,则b将存储0;如果s1小于s2,则b将存储负值;如果s1大于s2,则存储正值。 “
我制作的程序不起作用,我不知道为什么,有一点是如果数组彼此相等,程序就会失败,即使它们没有,程序也不起作用。 谢谢你的帮助...
public class CompareCharMethod {
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] s1 = new char[] {'a', 'p', 'p', 'l', 'e'};
char[] s2 = new char[] {'o', 'r', 'a', 'n', 'g', 'e'};
int answer = CompareTo(s1, s2);
System.out.println(answer);
}
public static int CompareTo(char[] s1, char[]s2)
{
if (s1==s2) {
return 0;
} else {
int i=0;
do {
if (s1[i] <s2[i]) {
return -1;
} else if (s1[i] >s2[i]) {
return 1;
} else {
i++;
}
} while (s1[i]==s2[i]);
}
return 999;
}
}
答案 0 :(得分:-1)
这应该是你要找的我把它解释为词典顺序。
public static int CompareTo(char[] s1, char[]s2)
{
if (s1==s2)
return 0;
int n = s1.length>=s2.length ? s2.length : s1.length;
for(int i=0;i<n;i++){
if(s1[i]<s2[i])
return -1;
else if(s1[i]>s2[i])
return 1;
}
if(s1.length==s2.length)
return 0;
return s1.length>s2.length ? 1 : -1;
}
答案 1 :(得分:-3)
你可以试试这个:
public static void main(String[] args) {
String s1 = "apple";
String s2 = "orange";
int answer = myCompareTo(s1.toCharArray(), s2.toCharArray());
System.out.println(answer);
}
public static int myCompareTo(char[] s1, char[]s2) {
int len1 = s1.length;
int len2 = s2.length;
int lim = Math.min(len1, len2);
char v1[] = s1;
char v2[] = s2;
int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}