вопрос пользовательского ввода - PullRequest
2 голосов
/ 19 апреля 2010

Моя программа проверяет, является ли слово или фраза палиндромом (читает то же самое и в обратном, и в прямом смысле, например, «гоночный автомобиль»). Проблема, которая у меня возникла, заключается в том, что кто-то вступает в «гоночный автомобиль», заставляя его действительно тестировать. В приведенном ниже коде я отметил, где, если я наберу "racecar" и запустлю, Java вернет правильный ответ, так что я знаю, что я тут же. Но чего мне не хватает, если ввести его в консоль. Я думаю, что мой код в порядке, но, может быть, мне чего-то не хватает или не в том месте? На самом деле я не ищу новый ответ, если я что-то упустил, но, если возможно, возможно, профессионал при перемещении моего кода в нужную область, потому что я застрял!

import java.util.*; 

public class Palindrome { 

public static void main(String[] args) { 
    String myInput; 
    Scanner in = new Scanner(System.in); 

    System.out.println("Enter a word or phrase: ");  **//this asks user for input but doesn't check for whether or not it is a palindrome**
    myInput = in.nextLine(); 
    in.close(); 

    System.out.println("You entered: " + myInput); 
}   

{
    String s="racecar";  **//I can type a word here and it works but I need**
    int i;               **//I need it to work where I ask for the input** 
    int n=s.length(); 
    String str="";  

    for(i=n-1;i>=0;i--)  
        str=str+s.charAt(i);  

    if(str.equals(s))  
        System.out.println(s+ " is a palindrome");  

    else  System.out.println(s+ " is not a palindrome"); }

}

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

Ответы [ 2 ]

1 голос
/ 19 апреля 2010

Прежде всего, код, который вы дали, не будет компилироваться; это в сторону. Похоже, что вы ищете, чтобы "как читать пользовательский ввод"

Вот что вам нужно сделать простыми словами:

import java.util.Scanner;
...
...

Scanner in = new Scanner(System.in);

// Reads a single line from the console 
// and stores into variable called "s"
String s= in.nextLine();
in.close();

Затем перейдите к коду для проверки "s" для палиандрома.

1 голос
/ 19 апреля 2010

Все выглядит хорошо, однако ваш цикл for все еще показывает, что вы проверяете, является ли s палиндромом, а не myInput.

Теперь все, что вам нужно сделать, это заменить каждое вхождение s на myInput, а затем проверить, правильно ли работает ваша программа.

Как гласит, ваша программа не распознает фразу "Мадам Им Адам" как палиндром.

Поскольку это домашнее задание, один из возможных подходов к распознаванию фраз (без изменения кода) - удалить пробелы (вы можете использовать String#replaceAll) в вашей строке и затем выполнить проверку палиндрома.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...