2015-11-22 2 views
-4

У меня есть быстрый вопрос, связанный с ASCII и кодировкой. Я хочу взять данные от пользователя - например: «cat» - и превратить его в код. Код выглядит следующим образом:Кодировка Java ASCII

  1. Все строчные буквы преобразуются в заглавные буквы.
  2. Первая буква в закодированном сообщении сохраняется как значение кода ASCII.
  3. Все последующие буквы представлены как смещение между текущей буквой и предыдущей буквой.

Например: «cat» = 67 -2 19, так как «C» = 67, «A» - -2 буквы от «C», а «T» - 19 букв от «A». Любая помощь будет принята с благодарностью!

+2

Вы на самом деле пробовали что-нибудь? –

+0

Что вы пробовали? Подсказка: посмотрите методы в классе ['Character'] (https://docs.oracle.com/javase/7/docs/api/java/lang/Character.html). –

ответ

1
Scanner input = new Scanner(System.in); 
String s = input.next().toUpperCase(); 
int ascii = s.charAt(0); 
System.out.println(ascii); 
for (int i = 1; i < s.length(); i++) { 
    ascii = s.charAt(i - 1); 
    System.out.println(s.charAt(i) - ascii); 
} 
  1. Для преобразования заглавных букв есть метод toUpperCase(), который возвращает строку со всеми прописными буквами.
  2. Чтобы получить код ASCII буквы, вы можете просто создать целое число и присвоить ему желаемый символ (в данном случае первую букву строки, поэтому int ascii = s.charAt(0);).
  3. Чтобы получить смещения, вы можете использовать for-loop, начиная с 1 (вторая буква), где вы получаете код ASCII предыдущего символа и вычитаете его из текущего.
+0

Рассмотрите возможность редактирования сообщения, чтобы добавить больше объяснений о том, что делает ваш код, и почему он решит проблему. Ответ, который в основном содержит только код (даже если он работает), обычно не помогает OP понять их проблему. – Miki

+0

@Tolen Вы заметили, что ваш результат не соответствует ожиданиям OPs, правильно? – Tom

+0

Спасибо за помощь, я очень благодарен! Мой единственный вопрос: что бы я сделал для возвращаемого значения, если бы сделал это в своем собственном методе? –

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