【问题标题】:Palindrome Checker Java boolean insight回文检查器 Java 布尔洞察
【发布时间】:2013-03-26 21:09:03
【问题描述】:

所以我正在用 java 做一个回文检查器,我似乎遇到了障碍,这是我目前的代码:

public class StringUtil
{

public static void main(String[] args)
{
    System.out.println("Welcome to String Util.");       
    Scanner word = new Scanner(System.in);

    String X = word.nextLine();       
    String R = palindrome(X);

    System.out.println();
    System.out.println("Original Word: " + X);     
    System.out.println("Palindrome: " + R);



}


public static boolean palindrome(String word)
{
   int t = word.length(); //length of the word as a number
   int r = 0;


   if(word.charAt(t) == word.charAt(r))
   {
       return true;
    }
    else
    return false;
}

到目前为止,我只希望它检查第一个字母是否与最后一个字母相同,但是当我编译它时,我在“String R = palindrome(X);”上得到一个不兼容的类型错误我如何让它在它下面的输出语句上打印 true 或 false?

【问题讨论】:

标签: java string boolean palindrome


【解决方案1】:

您的palindrome 方法返回boolean,但您正试图将其分配给String。将R变量的定义修改为boolean

【讨论】:

  • 谢谢。我仍然感到困惑,因为我是新手。我会记住这一点以备将来使用,顺便说一句,它有效。
【解决方案2】:

由于字符在 java 中的字符串(或数组)中以 0 为索引,因此最后一个字符的长度为 - 1

试试

int t = word.length() - 1;

糟糕,这不是您遇到的问题。但是,一旦类型错误得到解决,您会立即注意到它。

【讨论】:

  • 我也注意到了这一点,虽然在我看到之前。无论如何,感谢您指出。
【解决方案3】:

word.charAt(t - 1),否则你多算了字符串,也返回“true”;如果您想使用 String 作为结果类型,则返回“false”;

【讨论】:

    【解决方案4】:
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class RegexMatches {
        public static void main(String args[]) {
    
            // String to be scanned to find the pattern.
            String line = "This order was placed for QT3000! OK?";
            String pattern = "(.*)(\\d+)(.*)";
    
            // Create a Pattern object
            Pattern r = Pattern.compile(pattern);
    
            // Now create matcher object.
            Matcher m = r.matcher(line);
            if (m.find()) {
                System.out.println("Found value: " + m.group(0));
                System.out.println("Found value: " + m.group(1));
                System.out.println("Found value: " + m.group(2));
            } else {
                System.out.println("NO MATCH");
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-15
      • 1970-01-01
      • 2016-09-03
      • 2013-04-02
      • 1970-01-01
      • 2013-12-19
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      相关资源
      最近更新 更多