用户输入问题

时间:2010-04-19 00:51:04

标签: java input palindrome

我的程序检查以测试一个单词或短语是否是回文(向前和向后读取相同的内容,例如“racecar”)。我遇到的问题是有人进入“赛车”后让它进行实际测试。在下面的代码中,我标记了如果我输入“racecar”并运行,Java会返回正确的答案,所以我知道我就在那里。但是,只要将其输入控制台,我就错过了什么。我认为我的代码还可以,但也许我有些东西丢失或错误的地方?除非我遗漏了某些东西,否则不是真的在寻找新的答案,但如果可能的话,也许是专业人员将我的代码移动到正确的区域bc我被卡住了!

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 个答案:

答案 0 :(得分:1)

一切看起来都不错,但是您的for循环仍然显示您正在检查s是否是回文,而不是myInput

现在,您需要做的就是用s替换myInput的每一次出现,然后检查您的程序是否正常运行。

作为一个单挑,你的程序将不会识别“Madam Im Adam”作为回文。

由于这是作业,一种识别短语(不改变你的代码)的可能方法是删除字符串中的空格(你可以使用String#replaceAll)然后执行回文检查。

答案 1 :(得分:1)

首先,你提供的代码不会编译;除此之外。 看起来你正在寻找的是“如何阅读用户输入”

以下是您需要做的简单说明:

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”是否为paliandrome。