2016-09-29 3 views
-4

Мне нужно взять символы ASCII между 32 и 93 и вернуть им значение true, иначе любые другие символы вне этих параметров вернут значение false.Ввод ввода в ASCII

public static boolean safeToUse(String plaintext) { 
    plaintext = plaintext.toUpperCase(); 

     for (char i=1; plaintext.length(); i++); 
     (i >32 && i < 93); 
     return true;  
     else return false; 
} 

Тогда у меня есть еще один файл, который принимает этот код и выплевывает истинные или ложные:

String plaintext; 
    plaintext = "!"; 
    if (CryptoCode.safeToUse(plaintext)) { 
     System.out.println("Yay, it's a valid message to crypt!"); 
    } 
    else { 
     System.out.println("Ooops."); 
    } 

Но единственные возвращаемые значения я каждый получаю возвращение истинного независимо от того, если его лжи , И если бы я должен был переключить свое значение «return true» из первого кода в «return false», каждый ответ выдавал бы ложное значение независимо от того, было ли это правдой ...

+1

'safeToUse' не имеет никакого смысла. Как вы думаете, что вы должны зацикливаться? – jonrsharpe

+0

Подсказка: 1) Вы, вероятно, хотите 'String.charAt()'. 2) Вызов 'toUpperCase()' и игнорирование результата бессмысленно. Обратите внимание, что строки неизменяемы. –

+0

Ваш цикл for даже не рассматривает параметр «plaintext». Вы должны прочитать о Java - ваш цикл всегда начинается с 'i == 1', сразу заканчивается, так как он не находится в« безопасном »диапазоне – eavidan

ответ

0

Я не уверен, почему вы хотите преобразовать в верхний регистр, но вы можете изменить мой примерный код ниже, если вам все еще нужно это сделать. Кроме того, я не уверен в вашем заявлении, если фильтрация предназначена для включения или исключения значений краев 32 и 93. Я оставлю это для вас, чтобы решить.

public static boolean safeToUse(String plaintext) { 

     for (int i = 0; i < plaintext.length(); i++) 
     { 
      char c = plaintext.charAt(i); 
      boolean valid = (((c >= 'a') && (c <= 'z')) || 
          ((c >= ' ') && (c <= ']'))); // space is 32. right bracket is 93 
      if (valid == false) 
      { 
       return false; 
      } 
     } 

     return true; 
} 
+0

Это была опечатка. Это исправлено. – selbie

+0

'toUpperCase' используется для включения строчных букв, так как только буквы верхнего регистра находятся в этом диапазоне http://www.asciitable.com/ –

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