java - 更改回文以适应数字回文

标签 java palindrome

所以我找到了一种非常有效的方法来检查回文,但我被要求更改它以适应数字回文,并且我再次陷入困境。

public boolean checkNumericPalindrome() {

String s = this.s.toLowerCase();
String resultString = "";
for(int i=0; i<s.length(); i++) {
      if(Character.isDigit(s.charAt(i))) {
         resultString = resultString + s.charAt(i);
      }
    }
int low = 0;
int high = resultString.length() - 1;

boolean isPalindrome = true;

while (low < high) {
  if (resultString.charAt(low) != resultString.charAt(high)) {
    isPalindrome = false;
    break;
  }

  low++;
  high--;
    }
return isPalindrome;
}

`

我发现我必须将 Letters 更改为 isDigits,并且我知道我应该更改或删除 toLowerCase可能还有 s.length 但我似乎找不到等价的数字,或者不知道是否有。

最佳答案

如果您不想对逻辑进行任何重大更改,您可以简单地根据输入数字创建字符串并执行相同的操作。

public boolean checkNumericPalindrome(int number) {
        String resultString = Integer.toString(number);
        //proceed with same logic & process string
        return true;
    }

编辑:
更好的方法:

public boolean checkNumericPalindrome(int number) {
     return checkStringPalindrome(Integer.toString(number));
}

因此,每当您对 checkStringPalindrome 进行更改时,都无需更改其他方法。

关于java - 更改回文以适应数字回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33139548/

相关文章:

Java 推送到队列引用或值

java - 将数组中的元素移动到空位置

java - 如何在 spring-boot 中禁用 spring-data-mongodb

c++ - 回文测试函数

algorithm - 如何找到最长的回文子序列?

bash - 从文本文件打印所有回文

c++ - 如何计算两个玩家之间的回文游戏的总分?

java - 绘制形状时 JPanel 中 Canvas 的清除按钮

java - 如何使用 Selenium 绕过 Google reCAPTCHA 进行测试

c - 回文仅在末尾比较标点符号,使用指针