例如:字符串:abc和bdx,写一方法,判断字符是否相等,不用String.equals方法。用两层循环实现。

解决方案 »

  1.   


    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();
      

  2.   

    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("相等");
    }
    }
      

  3.   

    去看一下String的equal方法,把代码粘出来改改就OK了。
      

  4.   

    为何不用equals方法呢?难道是出考试题!
      

  5.   

     楼主用equals方法里的代码,不直接调用equals不就行了~~
      

  6.   

    这是我的理解,不对的请大家指正。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;
    }
    }
      

  7.   


    呵呵呵,去看看JDK的源代码不就行了,为何搞得这么神秘。用不到2层循环,一个足以
    1 将字符串转化为字符数组
    2 循环比较每个位置字符是否相等
      

  8.   

    是啊楼主用equals方法里的代码,不直接调用equals不就行了
      

  9.   

    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("比较结果不相等");
    }
    }
      

  10.   


    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("不相同");  
    }
    }这个实现时间复杂度低!!
      

  11.   

    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;
    }
      

  12.   

    String s1 = "abc";
    String s2 = "bcd";if(s1 == s2) {
        ………………
    }
      

  13.   


    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("不相等啊");
    }}
      

  14.   

    试试这个:
    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;
        }
    }
      

  15.   

    有方法当然是直接用就好了阿.
    如果楼主非要写程序的话,,楼上的已经有很多了.
    其实思路就是,先判断两个字符串的长度是否相等,如果不相等,直接返回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;
    }
      

  16.   

    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;
        }