Идеи на stringChecker, который проверяет строку для определенных символов? - PullRequest
1 голос
/ 04 октября 2011

Я пытаюсь проверить строку на наличие определенных символов. Персонажи в основном в списке. Однако я не знаю, как этого добиться. Единственная идея, которую я имею, состоит в том, чтобы пройтись по строке, проверяя первый символ строки по каждому символу. Например, если моя строка: «ablacablada», и я хочу проверить символы (l, d, e, f, h, p), я бы проверил индекс 0 в строке «ablacablada». Я бы перебрал список символов и увидел бы, является ли символ с индексом 0 «l». Если нет, я бы перешел к индексу 1 и так далее. Вот мой код:

public boolean stringChecker()
{
  String newString = "ablacablada";
  char [] newChar = {l; d; e; f; h; p};
  String charString = new String(newChar)
  boolean isString = false;

  for (int i=0; i<charString.length(); i++)
  {
    for (int j=0; j<newString; j++)
    {
      if(charString.charAt(i) == newString.charAt(j))
      {
         isString = true; // a character in the list (l, d, e, f, h, p) is detected
      }
      else
      {
         isString = false;
      }
    }
  }
  return isString;
} 

Это моя идея. Тем не менее, это не работает. Если бы кто-нибудь мог указать мне правильное направление, я был бы благодарен. Заранее спасибо.

P.S. Вот что я имею в виду:

"a b l a c a b l a d a"

1. check the a from the character list. 
Is "a" == "l"? No. 
Is "a" == "d"? No. 
Is "a" == "e"? No. 
Is "a" == "f"? No. 
Is "a" == "h"? No. 
Is "a" == "p"? No.

2. Move on to index 1. 
Is "b" == "l"? No. 
Is "b" == "d"? No. 
Is "b" == "d"? No... 
And so on. 

Ответы [ 2 ]

0 голосов
/ 04 октября 2011

Вот пример использования регулярных выражений:

            Pattern p = Pattern.compile("[ldefhp]");
            // Split input with the pattern
            Matcher m = p.matcher("asdnbllksksksdf");
            boolean result = m.find();
            System.out.println(result); // true


edit no regexp.Вернитесь / выйдите, как только найдете иглу:
  String newString = "ablacablada";
  char [] newChar = {l; d; e; f; h; p};
  String charString = new String(newChar)
  boolean isString = false;

  for (int i=0; i<charString.length(); i++)
  {
    for (int j=0; j<newString; j++)
    {
      if(charString.charAt(i) == newString.charAt(j))
      {
         return true; // a character in the list (l, d, e, f, h, p) is detected
      }
    }
  }
  return false;
0 голосов
/ 04 октября 2011

j следует сравнить с длиной newString
Вы устанавливаете isString на false после того, как, возможно, уже настроили true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...