import java.util.Scanner;public class Match {
public static void main(String[] args) {
Scanner input= new Scanner(System.in);
System.out.println("请输入某一字符串:");
String str1= input.next();
System.out.println("请输入待匹配字符串:");
String str2= input.next();
char[] arr1= new char[str1.length()];
char[] arr2= new char[str2.length()];
arr1=str1.toCharArray();
arr2=str2.toCharArray();
if(equals(arr1,arr2)==false){
System.out.println("两字符串一致!");
}else{
System.out.println("两字符串不一致!");
}
}
public static boolean equals(char[] a,char[] b){
char tempA;
char tempB;
for(int i=0; i<a.length; i++){
for(int j=0; j<a.length-i-1; j++){
if(a[j]>a[j+1]){
tempA=a[j];
a[j]=a[j+1];
a[j+1]=tempA;
}
}
}
for(int k=0; k<a.length; k++){
System.out.print(a[k]+" ");
}
System.out.println();
for(int i=0; i<b.length; i++){
for(int j=0; j<b.length-i-1; j++){
if(b[j]>b[j+1]){
tempB=b[j];
b[j]=b[j+1];
b[j+1]=tempB;
}
}
}
for(int k=0; k<b.length; k++){
System.out.print(b[k]+" ");
}
System.out.println();
a.toString();
b.toString();
if(a.equals(b))//???????????????????
return true;
else
return false;
}
}
为什么返回的是false?
public static void main(String[] args) {
Scanner input= new Scanner(System.in);
System.out.println("请输入某一字符串:");
String str1= input.next();
System.out.println("请输入待匹配字符串:");
String str2= input.next();
char[] arr1= new char[str1.length()];
char[] arr2= new char[str2.length()];
arr1=str1.toCharArray();
arr2=str2.toCharArray();
if(equals(arr1,arr2)==false){
System.out.println("两字符串一致!");
}else{
System.out.println("两字符串不一致!");
}
}
public static boolean equals(char[] a,char[] b){
char tempA;
char tempB;
for(int i=0; i<a.length; i++){
for(int j=0; j<a.length-i-1; j++){
if(a[j]>a[j+1]){
tempA=a[j];
a[j]=a[j+1];
a[j+1]=tempA;
}
}
}
for(int k=0; k<a.length; k++){
System.out.print(a[k]+" ");
}
System.out.println();
for(int i=0; i<b.length; i++){
for(int j=0; j<b.length-i-1; j++){
if(b[j]>b[j+1]){
tempB=b[j];
b[j]=b[j+1];
b[j+1]=tempB;
}
}
}
for(int k=0; k<b.length; k++){
System.out.print(b[k]+" ");
}
System.out.println();
a.toString();
b.toString();
if(a.equals(b))//???????????????????
return true;
else
return false;
}
}
为什么返回的是false?
解决方案 »
- Introduction to Java Programming 哪下到bonus chapters
- JAVA如何将文件夹复制到远端的WINDOWS服务器的某个路径下?
- 算法:1~N中求出1的个数,(如果11 那1的个数就是2)
- [注意]100分求购5月31日前在SUN社区注册的用户帐号!!!
- 有谁知道JCREATOR里为什么在编译applet文件时,能编译通过,可一运行就提示:没有main函数呀!
- 关于字符串数组
- 类成员的访问权限控制问题,解决后即结帖
- 班竹:为什么我一天掉了11的信誉值?我是怎么了?扣分也发给短信告诉我是为什么?2次这样对我拉!
- JBuilder里怎么把做好的HelloWorld应用程序做成.exe文件?
- 请教,有没有MOUSE的MOUSEMOVED的例子
- 修改窗口图标
- 求大家来帮新手解决个随即数的问题
为什么返回的是false?
请输入某一字符串:
jiangzuzu
请输入待匹配字符串:
zujinagzu
a g i j n u u z z
a g i j n u u z z
两字符串一致!
没问题~~
CLEAN 重新编译下
请输入待匹配字符串:
zujinagzu
a g i j n u u z z
a g i j n u u z z
两字符串一致!
API里面是这样说的:public boolean equals(Object anObject)将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。 覆盖:
类 Object 中的 equals
参数:
anObject - 与此 String 进行比较的对象。
返回:
如果给定对象表示的 String 与此 String 相等,则返回 true;否则返回 false。
a 和 b 比较 调用的是 Object 的 equals 方法
比较的就是地址
a 和 b 不是同一地址,当然为 false
if(str1.equals(str2)){
return true;
}else{
return false;
}
System.out.println("两字符串一致!");
}else{
System.out.println("两字符串不一致!");
}
}这段是这样的...
import java.util.Scanner;public class Match { public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入某一字符串:");
String str1 = input.next();
System.out.println("请输入待匹配字符串:");
String str2 = input.next(); char[] arr1 = new char[str1.length()];
char[] arr2 = new char[str2.length()]; arr1 = str1.toCharArray();
arr2 = str2.toCharArray(); if (equals(arr1, arr2)) {
System.out.println("两字符串一致!");
} else {
System.out.println("两字符串不一致!");
}
} public static boolean equals(char[] a, char[] b) { if (a == b) {
return true;
} if (a == null || b == null) {
return false;
} if (a.length != b.length) {
return false;
} Arrays.sort(a);
Arrays.sort(b); for (int i = 0; i < a.length; i++) {
if (a[i] != b[i]) {
return false;
}
} return true; }
}按你的需求改的,你看下有没错
这样就行了 public static boolean equals(char[] a, char[] b) { if (a == b) {
return true;
} if (a == null || b == null) {
return false;
} Arrays.sort(a);
Arrays.sort(b);
return Arrays.equals(a, b);
}
public static boolean equals(char[] a, char[] b) { if (a == b) {
return true;
} if (a == null || b == null) {
return false;
} Arrays.sort(a);
Arrays.sort(b);
return Arrays.equals(a, b);
}挺好的~~