Chrono Failz Ответов: 1

Как конвертировать Z в a в bluej[JAVA]


Привет,
Я столкнулся с проблемой со следующей программой:
Напишите программу для принятия предложения и распечатайте его в следующем закодированном формате:
Пример ввода: abc def xyz
Пример вывода: bcd efg yza


Он отлично скомпилирован и дает необходимый вывод для символов от "А" до "у".
Работают как бегущие, так и блочные символы.

Однако в случае'зет' или 'Зет',он не возвращается 'один' или 'Один',
это дает '{' или '[- то есть 1 после них в системе ASCII.
Пожалуйста, помогите мне решить эту проблему.

С уважением,
Хроно

Что я уже пробовал:

Это моя попытка:

import java.util.*;
class Character
{
    public static void main(String[]args)
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter a sentence");
        String s=sc.nextLine(),s3="";
        char s2;
        int l=s.length();
        for(int i=0;i<l;i++)
        {
        char s1=s.charAt(i);
            if(s1!=' ')
            {
               s2=(char)((int)s1 +1);
               {
               if(s2=='z'||s2=='Z')
               {
               s2=(char)((int)s2 -25);
            }
            else
               { 
                   s2=s2;
                }
            }      
            }
           else
            {
                 s2=s1;

        }
        s3=s3+s2;
    }
        System.out.println(s3);
    }
}

1 Ответов

Рейтинг:
5

Patrice T

Научитесь правильно делать отступы в вашем коде, это покажет его структуру, и это поможет чтению и пониманию. Это также помогает выявлять структурные ошибки.

import java.util.*;
class Character
{
  public static void main(String[]args)
  {
    Scanner sc=new Scanner(System.in);
    System.out.println("Enter a sentence");
    String s=sc.nextLine(),s3="";
    char s2;
    int l=s.length();
    for(int i=0;i<l;i++)
    {
      char s1=s.charAt(i);
      if(s1!=' ')
      {
        s2=(char)((int)s1 +1);
        {
          if(s2=='z'||s2=='Z')
          {
            s2=(char)((int)s2 -25);
          }
          else
          {
            s2=s2;
          }
        }
      }
      else
      {
        s2=s1;
      }
      s3=s3+s2;
    }
    System.out.println(s3);
  }
}

Обратите внимание на этот код с повторным отступом, он не похож на ваш вопрос, но это тот же самый код.
Профессиональные редакторы программистов имеют эту функцию и другие, такие как сопоставление скобок и подсветка синтаксиса.
Блокнот++ Главная Страница[^]
личные[^]
-----
Предложение может содержать запятые и точки, которые не обрабатываются вашим кодом.
Используйте отладчик и проверьте поведение кода с каждой буквой, особенно с символами y, z и без букв.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что он делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.