java - 检查字符串中的回文(java)(菜鸟状态)

标签 java logic palindrome

我试图检查输入的字符串是否是回文

如果它显示一些积极的东西 如果不是......一些负面的(无效的)

我目前两次得到的答案都无效(无论输入什么) 我不太确定 for 循环或 boolean 语句是否有问题。

    //ACTION FROM BUTTON PERFORMED HERE
private void ButtonActionPerformed(ActionEvent evt) {
    //creating variables
    String myString = textField1.getText();
    int stringLength = myString.length();
    char arrayOne[] = new char[stringLength];
    char arrayTwo[] = new char[stringLength];
    boolean palindrome = false;

    //for loop to setup ARRAY ONE
    for(int i = 0; i < stringLength-1; i++){
        arrayOne[i] = myString.charAt(i);
    }

    //for loop to setup ARRAY TWO
    for(int i = stringLength-1; stringLength-1 > i; i--){
        arrayTwo[i] = myString.charAt(i);
    }

    //for loop checking if array indexes are equivalent in value (char)
    for(int i = 0; i < stringLength-1; i++){
        if(arrayOne[i] != arrayTwo[i]){
            palindrome = false;
        }
        else{
            palindrome = true;
        }
    }

    //assigning text to the text boxes based on boolean palindrome
    if(palindrome == true){
        textField2.setText("Valid");
    }
    if(palindrome ==false){
        textField2.setText("Invalid");
    }
}

}

我认为我的评论很体面

最佳答案

改变

for(int i = stringLength-1; stringLength-1 > i; i--)

for(int i = 0; i < stringLength-1; i++)

并改变

for(int i = stringLength-1; i-1 > 0; i--)

for(int i = stringLength-1; i-1 >= 0; i--)

编辑:

那是一场调试盛宴!

这是一个工作代码:

    String myString = textField1.getText();
    int stringLength = myString.length();
    char arrayOne[] = new char[stringLength];
    char arrayTwo[] = new char[stringLength];
    boolean palindrome = true;
    //for loop to setup ARRAY ONE
    for(int i = 0; i <= stringLength-1; i++){
        arrayOne[i] = myString.charAt(i);
    }

    //for loop to setup ARRAY TWO
    for(int i = stringLength-1, pos = 0; i >= 0; i--, pos++){
        arrayTwo[pos] = myString.charAt(i);
    }

    //for loop checking if array indexes are equivalent in value (char)
    for(int i = 0; i <= stringLength-1; i++){
        if(arrayOne[i] != arrayTwo[i]){
            palindrome = false;
            break;
        }
    }

    //assigning text to the text boxes based on boolean palindrome
    if(palindrome == true){
          textField2.setText("Valid");
    }
    else{
        textField2.setText("Invalid");
    }

关于java - 检查字符串中的回文(java)(菜鸟状态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15018030/

相关文章:

java - 游戏的 Google 应用索引

java - 如何在 hibernate 中创建多对一映射?

merge - Cypher Neo4J - 带有 MERGE 的 CASE 表达式

ruby - 测试回文

java - Servlet 的数据库处理程序

java - 向 JFrame 添加图 block 的更简单方法

javascript - (this) 在这段代码中如何工作,javascript?

python - 如何在给定最后已知的 EMA 的情况下对指数移动平均线进行逆向工程

java - java中如何减少给定字符串中的字符直到它变成回文

java - 降低 isPalindrome 解决方案的复杂性?