0

我想在字符串中找到一个字符。如果找到该字符,则将 1 添加到 char_counter。我该如何实施?

例子:

int char_counter = 0;
String password = "1234";
String search = "1234";
for(int i = 0; i < password.length() - 1; i++) {
    for(int j = 0; j < search.length() - 1; j++) {
        //This is just pseudo code since I don't know how to properly search a string
        if(password[i] == search[j]) {
            char_counter = char_counter + 1;
        }
    }
}
4

4 回答 4

2
I don't know what do you want to do if you want to compare your password and search
string character one bye than try this

     int char_counter = 0,i,j;
     String password = "1234";
     String search = "1234";
     if(password.length()==search.length()){    
        for(i=0,j=0;i<password.length();i++,j++){
            if(password.charAt(i)==search.charAt(j)){
                char_counter++;
            }
        }
    }


 if you want to search each character in password string than try this 

  for(int i = 0; i < password.length() - 1; i++){
     for(int j = 0; j < search.length() - 1; j++)
          {
              if(password.length() == search.length())
              { char_counter = char_counter + 1;}
          }
    }
于 2014-02-25T04:44:27.720 回答
1

你的伪代码:
password[i]

应该:

password.charAt(i)

结果:

if(password.charAt(i) == search.charAt(j)){ 
    char_counter = char_counter + 1;
}
于 2014-02-25T04:24:56.543 回答
1

尝试这个..

如果你喜欢,你应该使用这个password[i]java将作为数组

password.charAt(i)search.charAt(j)

你必须使用条件为.equals

if(password.charAt(i).equals(search.charAt(i))){ 
    char_counter = char_counter + 1;
}

不是password[i] == search[j]

==总是只比较两个引用(即对于非原始对象)——即它测试两个操作数是否引用同一个对象。

但是,该equals方法可以被覆盖 - 所以两个不同的对象仍然可以相等......链接

于 2014-02-25T04:28:51.560 回答
1

您可以首先使用 toCharArray() 方法将字符串转换为字符数组,如下所示:

Char[] pass = password.toCharArray();
Char[] sear = search.toCharArray();

然后使用 java "equals" 提供的任何比较。“包含”。当然在 for(string x: pass) 里面。或带有计数器++的 for 循环

于 2014-02-25T04:41:54.610 回答