假设字符串类似这样的aba和aab,abc和bca就相等,现在随便给你二组字符串,请编程比较他们看是否相等...

本文提供了两种字符串比较的方法:一种是通过逐个字符匹配并删除已匹配的字符来判断两个字符串是否相等;另一种则是将字符串转换为字符数组后进行排序,再比较排序后的数组是否相同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static boolean stringSame(String str1,String str2){
if(str1.length() != str2.length()){//先判断长度
return false;
}
StringBuffer strTemp = new StringBuffer();//把str2放到一个StringBuffer
strTemp.append(str2);

for(int i = 0;i < str1.length();i++){//循环字符串1的字符,查看字符串2是否有相同字符,有的话删除
char temp = str1.charAt(i);
int index = strTemp.toString().indexOf(temp);
if(index != -1){
strTemp.deleteCharAt(index);
}else{
return false;
}
}
if(strTemp.toString().length() == 0){//删除结束,确认长度为0则相等
return true;
}

return false;
}

 

//第二种解法
public static equals(String s1,String s2){

if (s1.length() != s2.length()) return false;
if (s1.equals(s2)) return true; 
if (s1 == s2) return true;

char[] ca1 = s1.toCharArray();
char[] ca2 = s2.toCharArray();
Arrays.sort(ca1);
Arrays.sort(ca2);
return Arrays.equals(ca1,ca2);
}

 

转载于:https://www.cnblogs.com/caozengling/p/6873241.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值