Добрый день. Я нубчик, который решил выучить Java, других языков не знаю, посему вопрос тупой.
Суть проблемы - Код ASCII символов нижнего регистра отличается от кода соответствующих символов верхнего регистра на величину 32. Следовательно, для преобразования строчной буквы в прописную нужно уменьшить ее код на 32. Используйте это обстоятельство для написания программы, осуществляющей ввод символов с клавиатуры. При выводе результатов данная программа должна преобразовывать строчные буквы в прописные, а прописные — в строчные. Остальные символы не должны изменяться.
Ниже моё решение, которое не работает. %( Как решить проблему с работой АСКИ... Объясните что ли где я косячу...
public class MyFirstClass{
public static void main(String args[])
throws java.io.IOException {
char ch;
System.out.print("Press a key followed by ENTER: ");
ch = (char) System.in.read();
if (ch >= 41){
ch = (char) (ch + 32);}
if (ch >= B5){
break;}
if (ch >= 61){
ch = (char) (ch - 32);}
if (ch >= B7){
break;}
System.out.print("key: "+ch);
}}
Java
Не могу разобраться с ASCII.
мне так кажется, что В5 и В7 - это hex
Muratbek Ergeshov
А можно как то подробнее? Я не понял ответа.
Намудрили вы что-то с if-ами. Во-первых почему везде стоит >=. Под условие >= 41. Подпадает также и >= 61. Нужно как-бы делать ограничение с обоих сторон, если надо так. Во-вторых break вообще зачем надо. Сделайте нормальную структуру:
if ()
else if ()
else
if ()
else if ()
else
Muratbek Ergeshov
Спасибо, я понял свою ошибку. И спасибо за подсказку "Как сделать правильно".
Ты уверен чо это все компилируется вообще; Ладно B5 и B7 это какие то внешние константы, но вот что такое break вне свитча или цикла? Вообще самый верный и простой способ : String.toLowerCase();
Идеально работает
class Main {
public static void main(String[] args) throws java.io.IOException {
long i = 0;
while (true) {
char check = (char) System.in.read();
if (check = 65) {
check += 32;
++i;
System.out.print(check);
}
else if (check = 97) {
check -= 32;
++i;
System.out.print(check);
}
else if (check == 46) {
break;
}
else {
System.out.print(check);
}
}
System.out.println("\nПрограмма поменяла регистр " + i + " раз");
}
}
Хотя да, я затупил, вот через do while будет мб логичнее class Main {
public static void main(String[] args) throws java.io.IOException {
char check;
long i = 0;
do {
check = (char) System.in.read();
if (check = 65) {
check += 32;
++i;
System.out.print(check);
}
else if (check = 97) {
check -= 32;
++i;
System.out.print(check);
}
else {
System.out.print(check);
}
} while (check != 46);
System.out.println("\nПрограмма поменяла регистр " + i + " раз");
}
}
Вот, тоже дошел до этой задачи. Все работает
public class sriiing {
public static void main(String[] args)
throws java.io.IOException {
char ch;
int i;
i=0;
do {ch=(char)System.in.read();
if (ch>=65&ch<=90){
ch=(char)(ch+32);
System.out.println(ch);
i=i+1;
}
else {if(ch>=97&ch<=122){
ch=(char)(ch-32);
System.out.println(ch);
i=i+1;}
}
}while(ch!='.');
System.out.println(i);
}
}
public class sriiing {
public static void main(String[] args)
throws java.io.IOException {
char ch;
int i;
i=0;
do {ch=(char)System.in.read();
if (ch>=65&ch<=90){
ch=(char)(ch+32);
System.out.println(ch);
i=i+1;
}
else {if(ch>=97&ch<=122){
ch=(char)(ch-32);
System.out.println(ch);
i=i+1;}
}
}while(ch!='.');
System.out.println(i);
}
}
Похожие вопросы
- Не могу никак разобраться с этими IF ELSE и фигурными скобками. JAVA
- C# Помогите написать генератор паролей на C# ,что бы он мог генерировать нужное кол-во паролей.
- 2.11 Практическая работа Создайте проект с именем AgeComparator,я зделал небольшой прект можете его пж доработать?
- Meтoд поглощения! Можете про него что-то рассказать, пожалуйста? Задание такое получил в универе. А инфы толковой не нашел.
- Не могу понять ОБЪЕКТЫ в языках программ. Объясните простыми словами
- почему одни переменные могут объявлять буквы другие цифры?
- Не могу подключить css к проекту на Spring MVC, спринг просто не видит его.
- List от Set различается лишь тем, что в Set не могут быть повторяющиеся элементы?
- Не могу пройти Unit тесты
- Задали д/з не могу решить(