当前位置: 首页 > 知识库问答 >
问题:

Java回文程序(1个错误)

郭和硕
2023-03-14

昨天问了一个关于回文和Java的问题:

Java回文程序(我是否在正轨上)?

在你的帮助下,我已经取得了一些进步(再次感谢你)。在测试代码之前,我还需要一件事的帮助。我正在使用Eclipse,我在一行上得到一个错误(我也将在下面的代码中包含这个错误作为注释)。我一直得到一个< I >“无法对数组类型String[]”调用charAt(int)。

有人知道这里发生了什么吗?我已经有一段时间没有使用Java了。大约12个月前在C. S. One中使用过它,然后我在下一门课程中学习了数据结构中的C,然后是机器代码和汇编语言。这是代码(我还在代码的注释中包含了错误)。非常感谢:

public class Palindrome 
{

public boolean isPalindrome( String theWord )  
{    
    for ( int i = 0; i < theWord.length( ); i++ ) {
        if ( theWord.charAt(i) != theWord.charAt (theWord.length() - i - 1) ) {
            return false;
        }
    }
    return true;
}


public static void main( String [] theWord ) 
{
        int leftPointer = 0;
        int rightPointer = theWord.length - 1;

        for ( int i = 0; i < theWord.length / 2; i++ ) {
            while (leftPointer >= rightPointer) {
                if ( theWord.charAt(i) == theWord.charAt (theWord.length - i - 1) ) { // Error: Cannot invoke charAt(int) on the array type String[]
                    leftPointer++;
                    rightPointer--;
                }
                System.out.println(theWord);
            }
        }
}

}

共有3个答案

苏宏峻
2023-03-14

在Java中(如在C中),程序接收参数列表,即字符串数组。因此,您的类应如下所示:

public class Palindrome 
{
  public static boolean isPalindrome( String theWord )  
  {    
    for ( int i = 0; i < theWord.length( ); i++ ) {
      if ( theWord.charAt(i) != theWord.charAt (theWord.length() - i - 1) ) {
        return false;
      }
    }
    return true;
  }


  public static void main( String [] args ) 
  {
    String theWord = args[0];  // first word passed to the program
    boolean isPalindrom = Palindrome.isPalindrome(theWord);
    System.out.println(theWord + " is" + ( isPalindrom ? "" : " NOT " )   + " a Palindrome." ); 
  }

}
贲凌
2023-03-14

charAt(int index)应用于字符串,而不是字符串数组。你的程序想要决定一个字符串是否是一个回文,就像“abcba”一样。而不是检查数组中的字符串是否都是回文,对吗?比如{"abcba "," bbc "," aba"}。

袁安志
2023-03-14

您试图访问String[]上的charAt()(传递给程序的参数的字符串数组),但您需要在String上访问它。我建议你这样做:

< code>if(单词[i].charAt(0)= = the word[the word . length-I-1]。charAt (0) ) {

这可能会对你有所帮助。

 类似资料:
  • 所以,当我在playstore上传我的应用程序时,我得到了一个好消息,每次下载都会出错。 然后我发现它可能是Proguard。 所以,起初我的proGuard项目是空的,给出了300个错误,现在我添加了这些行,proGuard项目就像这样: 并给出以下错误: [2014-10-29 00:50:55-xxx]Proguard返回,错误代码为1。请参阅控制台[2014-10-29 00:50:55-

  • 我在Java方面有个问题。我正在制作一个程序来检查给定的文本是否有回文。我99%确定我的代码是正确的,但我不能得到一个好的结果。这是代码。 例如,我输入: 为什么是假的/

  • 问题内容: 从终端以下作品没问题 其中包含一些文件(例如,file1,file2和file3)的目录在哪里。 但是,在Java中使用以下命令时出现错误 错误是 我相信我正确地转义了字符。我尝试了几种不同的格式,但无法正常使用。 UPDATE @jtahlborn完美地回答了这个问题。但是命令现在已经稍作更改,以在计算md5sum之前对目录中的每个文件进行排序,如下所示(我已经接受了原始问题的出色答

  • 本文向大家介绍Java程序检查字符串为回文,包括了Java程序检查字符串为回文的使用技巧和注意事项,需要的朋友参考一下 如果即使反向将每个字符的位置都保持不变,则字符串为回文字符串。例如,``MADAM''是回文字符串,因为即使反向将字符串``MADAM''也使每个字符的位置保持不变。作为回文与否,我们可以使用库方法,也可以不使用库方法。 但是,如果我们要检查“女士”是否是回文,则由于首字母大写,

  • 当我从iReport编译我的. jrxml文件时,我没有问题,一切都很好。但是当我试图从我的Java程序打印时,它显示了这样一个错误: 错误评估表达式:源文:新java.lang.整数(1) 这是我的。jrxml文件 有什么想法吗? 更新我试图把语言改成Java。我在编译时遇到了一些错误:

  • " Don’t bury your burden in saintly silence. You have a problem? Great. Rejoice, dive in, and investigate. " — Ven. Henepola Gunaratana Diving In 通常程序设计的书籍都会以一堆关于基础知识的章节开始,最终逐步的构建一些有用的东西。让我们跳过所有的那些东西,