Преобразование ввода в ASCII

#java #ascii

#java #ascii

Вопрос:

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

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

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

Затем у меня есть другой файл, который принимает этот код и выдает значение true или false:

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

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

Комментарии:

1. safeToUse не имеет никакого смысла вообще. Как вы думаете, что вы должны перебирать?

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

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

4. for (char i=1; i>32 amp;amp; i<93; i ); что бы вы ожидали от этого?

5. Я понятия не имею, что это будет делать, это моя вторая неделя занятий.. Я работаю с примерами, которые мне показали, и с тем, что я могу найти в Интернете..

Ответ №1:

Я не уверен, почему вы хотите преобразовать в верхний регистр, но вы можете изменить мой пример кода ниже, если вам все еще нужно это сделать. Также я не уверен из вашего заявления, предназначена ли фильтрация для включения или исключения граничных значений 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') amp;amp; (c <= 'z'))  ||
                             ((c >= ' ') amp;amp; (c <= ']')) );  // space is 32. right bracket is 93
           if (valid == false)
           {
               return false;
           }
      }

      return true;
} 
  

Комментарии:

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