2015-04-08 2 views
0

Я неисправного следующий тестовый случай:Как проверить каждую букву в виде строки

@Test (timeout=3000) public void gatenot_0(){ 
    GateNot g = new GateNot (new Wire("inw"), new Wire("outa")); 
    g.feed("0"); 
    boolean ans = g.propagate(); 
    assertEquals(sigs1, g.read()); 
    } 

, который говорит "Invalid character" - Исключение брошено следующим методом:

public static List <Signal> fromString(String inps) 
    { 
     List<Signal> values = new ArrayList<Signal>(); 
     for(int i = 0; i < inps.length(); i++) 
     { 
      if(inps.charAt(i) != '1' && inps.charAt(i) != '0' 
        && inps.charAt(i) != 'X' && inps.charAt(i) != 'x' 
        && inps.charAt(i) != ' ' && inps.charAt(i) != '\t') 
       throw new ExceptionLogicMalformedSignal(inps.charAt(0), "Invalid character!"); 

      else if(inps.charAt(i) == '1') 
       values.add(HI); 
      else if(inps.charAt(i) == '0') 
       values.add(LO); 
      else if(inps.charAt(i) == 'X') 
       values.add(X); 
      else if(inps.charAt(i) == 'x') 
       values.add(X); 



     } 
     return values; 

    } 

Everytime я передаю то, в том числе «0» или «1» выбрасывает исключение. Итак, нужно ли проверять каждую букву строк inps как строку, а не charAt(). Если да, то как я должен это проверить? Заранее спасибо.

+0

код не показывает, как ваши называют 'fromString (String ИНПС)' –

+0

вы можете показать полную строку, которая бросает исключение – faljbour

+0

Изменить 'ИНПС. charAt (0) 'to' inps.charAt (i) ', чтобы увидеть символ, который фактически вызывает ошибку. –

ответ

1

Чтобы проверить каждую букву в виде строки, вы можете использовать

Character.toString(inps.charAt(i)) 

вместо просто inps.charAt(i)

Я бы рекомендовал хранить его в переменной для каждой итерации вместо вызова во много раз.

Вы также могли бы сделать

String.valueOf(inps.charAt(i)) 

Существует ярлык

inps.charAt(i) + "" 

И еще один способ:

inps.substring(i, i + 1) 

Обратите внимание, что если вы в конечном преобразования каждую букву в строке, вы должны использовать метод .equals при их сравнении.

Для получения дополнительной информации об этом, вы можете посмотреть на How to convert a char to a String?

Смежные вопросы