判断两字符是否相等 例如:字符串:abc和bdx,写一方法,判断字符是否相等,不用String.equals方法。用两层循环实现。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String str1="abc";STring str2="bdx";int minLen=str1.length();if (str2.length()<minLen){ minLen=str2.length();}boolean equal=false;for(int i=0; i<minLen;i++){ if (str1.charAt(i)!=str2.charAt(i)){ equal=false; break; }}equal=equal &&str1.length()==str2.length(); public static void main(String[] args) throws IOException { String str1 = "abc"; String str2 = "bdx"; if(str1.length() != str2.length()) { System.out.println("不相等"); } else { for(int i = 0; i < str1.length(); i++) { if(str1.charAt(i) != str2.charAt(i)) { System.out.println("不相等"); return; } } System.out.println("相等"); } } 去看一下String的equal方法,把代码粘出来改改就OK了。 为何不用equals方法呢?难道是出考试题! 楼主用equals方法里的代码,不直接调用equals不就行了~~ 这是我的理解,不对的请大家指正。import java.util.*;public class Test { public static void main(String[] args) { String s1 = "abc"; String s2 = "bdx"; boolean result = false; result = compare(s1, s2, s1.length()); System.out.println(result); } public static Boolean compare(String s1, String s2, int length) { boolean result = false; for(int i=0; i<length; i++) { if(s1.charAt(i) == s2.charAt(i)) result = true; else result = false; } return result; }} 呵呵呵,去看看JDK的源代码不就行了,为何搞得这么神秘。用不到2层循环,一个足以1 将字符串转化为字符数组2 循环比较每个位置字符是否相等 是啊楼主用equals方法里的代码,不直接调用equals不就行了 import java.io.*;public class Test {public static void main(String[] args){ String str1="abc",str2="bdx"; int minStr=str1.length(); Boolean result=true; if(minStr!=str2.length()){ result=false; }else { for(int i=0;i<minStr;i++){ if(str1.charAt(i)!=str2.charAt(i)){ result=false; } } } if(result==true) System.out.print("比较结果相等"); else System.out.print("比较结果不相等");}} public class stingToChars{ public static void main(String args[]) { String s1= "abc"; String s2= "bdx"; char c1[] = new char[10]; char c2[] = new char[10]; int i=0; if(c1.length!=c2.length) { System.out.println("不相同"); } else { for(i=0;i<c1.length;i++) { if(c1[i]!=c2[i]) return; } } if(i==c1.length) System.out.println("相同"); else System.out.println("不相同"); }}这个实现时间复杂度低!! public static boolean comp(String a,String b){ if(a==null||b==null) return false; else if(a.length()!=b.length()) return false; else { char[] ca=new char[a.length()]; char[] cb=new char[b.length()]; a.getChars(0, a.length(), ca, 0); b.getChars(0, b.length(), cb, 0); for (int i = 0; i < cb.length; i++) { if(ca[i]!=cb[i]){ return false; } } } return true; } String s1 = "abc";String s2 = "bcd";if(s1 == s2) { ………………} public class Test2 { public static void main(String[] args) { String str1 = "abc"; String str2 = "bdx"; if(str1.equals(str2)){ System.out.println("相等哟"); } System.out.println("不相等啊"); }} 试试这个:public class equals { public static void main (String[]args){ String a="abcdef"; String b="abcde"; System.out.println(equal(a,b)); } public static boolean equal(String s1,String s2){ if(s1.length()==s2.length()){ for(int i=0;i<s1.length();i++){ if(s2.indexOf(s1.charAt(i))==-1) return false; else if(i==s1.length()-1) return true; } return true; } else return false; }} 有方法当然是直接用就好了阿.如果楼主非要写程序的话,,楼上的已经有很多了.其实思路就是,先判断两个字符串的长度是否相等,如果不相等,直接返回false;如果相等的话,用一个for循环,然后用charat()方法逐个判断字符是否相等public static boolean equalString(String strA,String strB){ if(strA.length()!=strB.length()) { return false; } for(int i=0;i<strA.length();i++) { if(strA.charAt(i)!=strB.charAt(i)) { return false; } } return true;} String源码中的Equals方法 public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = count; if (n == anotherString.count) { char v1[] = value; char v2[] = anotherString.value; int i = offset; int j = anotherString.offset; while (n-- != 0) { if (v1[i++] != v2[j++]) return false; } return true; } } return false; } 比较想不通的问题 jfreechart 曲线不显示的问题 哭……为什么Confirm对话框仅出来一个框框…… 用过org.apache.poi.hssf请进,怎么读取excel文件中的日期值,救命! 应朋友所求想做一个连续点击的程序。 如何获得字符串中文的编码格式,哪儿有原码,急救急救 向远程主机发送数据包,如何组包? 谁给我一个JDBC调用存储过程的例子 how can i append a text into text file(i am in linux,can't write chinese,sorry) Eclipse安装 如何给swing表格某一格设置背景 js 计算问题
String str1="abc";
STring str2="bdx";int minLen=str1.length();
if (str2.length()<minLen){
minLen=str2.length();
}boolean equal=false;for(int i=0; i<minLen;i++){
if (str1.charAt(i)!=str2.charAt(i)){
equal=false;
break;
}
}equal=equal &&str1.length()==str2.length();
{
String str1 = "abc";
String str2 = "bdx";
if(str1.length() != str2.length())
{
System.out.println("不相等");
}
else
{
for(int i = 0; i < str1.length(); i++)
{
if(str1.charAt(i) != str2.charAt(i))
{
System.out.println("不相等");
return;
}
}
System.out.println("相等");
}
}
public class Test { public static void main(String[] args)
{
String s1 = "abc";
String s2 = "bdx";
boolean result = false;
result = compare(s1, s2, s1.length());
System.out.println(result);
}
public static Boolean compare(String s1, String s2, int length)
{
boolean result = false;
for(int i=0; i<length; i++)
{
if(s1.charAt(i) == s2.charAt(i)) result = true;
else result = false;
}
return result;
}
}
呵呵呵,去看看JDK的源代码不就行了,为何搞得这么神秘。用不到2层循环,一个足以
1 将字符串转化为字符数组
2 循环比较每个位置字符是否相等
public class Test {
public static void main(String[] args){
String str1="abc",str2="bdx";
int minStr=str1.length();
Boolean result=true;
if(minStr!=str2.length()){
result=false;
}else {
for(int i=0;i<minStr;i++){
if(str1.charAt(i)!=str2.charAt(i)){
result=false;
}
}
}
if(result==true) System.out.print("比较结果相等");
else System.out.print("比较结果不相等");
}
}
public class stingToChars
{
public static void main(String args[])
{
String s1= "abc";
String s2= "bdx";
char c1[] = new char[10];
char c2[] = new char[10];
int i=0;
if(c1.length!=c2.length)
{
System.out.println("不相同");
}
else
{
for(i=0;i<c1.length;i++)
{
if(c1[i]!=c2[i])
return;
}
}
if(i==c1.length)
System.out.println("相同");
else
System.out.println("不相同");
}
}这个实现时间复杂度低!!
if(a==null||b==null)
return false;
else if(a.length()!=b.length())
return false;
else {
char[] ca=new char[a.length()];
char[] cb=new char[b.length()];
a.getChars(0, a.length(), ca, 0);
b.getChars(0, b.length(), cb, 0);
for (int i = 0; i < cb.length; i++) {
if(ca[i]!=cb[i]){
return false;
}
}
}
return true;
}
String s2 = "bcd";if(s1 == s2) {
………………
}
public class Test2 { public static void main(String[] args) {
String str1 = "abc";
String str2 = "bdx";
if(str1.equals(str2)){
System.out.println("相等哟");
}
System.out.println("不相等啊");
}}
public class equals {
public static void main (String[]args){
String a="abcdef";
String b="abcde";
System.out.println(equal(a,b));
}
public static boolean equal(String s1,String s2){
if(s1.length()==s2.length()){
for(int i=0;i<s1.length();i++){
if(s2.indexOf(s1.charAt(i))==-1)
return false;
else
if(i==s1.length()-1)
return true;
}
return true;
}
else return false;
}
}
如果楼主非要写程序的话,,楼上的已经有很多了.
其实思路就是,先判断两个字符串的长度是否相等,如果不相等,直接返回false;
如果相等的话,用一个for循环,然后用charat()方法逐个判断字符是否相等public static boolean equalString(String strA,String strB)
{
if(strA.length()!=strB.length())
{
return false;
}
for(int i=0;i<strA.length();i++)
{
if(strA.charAt(i)!=strB.charAt(i))
{
return false;
}
}
return true;
}
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}