java - 检查字符串的每个字符是否相等
问题描述
我正在尝试建立一个回文。我想我可能在 if 语句中使用太多条件循环来过度思考解决方案。我在尝试更新 while 循环以检查它是否已经通过并检查字符串的每个字符是否相等并更新它时遇到了麻烦。有人可以指出我正确的方向,以及我怎样才能用代码做一个更清洁的工作?
public class Main {
public static void main(String[] args) {
Main main = new Main();
main.isPalindrome("saippuakivikauppias");
main.isPalindrome("Hello World");
main.isPalindrome("Was it a car or a cat I saw");
}
private boolean isPalindrome(String word) {
int first = word.charAt(0);
int last = word.charAt(word.length() - 1);
if(word.length() <= 1) {
return true;
} else if(word.trim().length() > 1) {
if(Character.isLetter(first) && Character.isLetter(last)) {
while(first == last) {
first++;
last--;
//if loop to check if the while loop as gone through the entire string?
//update?
}
} else {
return false;
}
}
return false;
}
}
解决方案
你真的想多了 - 你应该更基本地考虑你的问题:
回文是一个向后和向前读取相同的字符串 -> 创建一个反向word
并比较word
public static boolean isPalindrome(String word){
StringBuilder reverse = new StringBuilder(word).reverse();
return word.equals(reverse.toString());
}
您甚至可以在一行中执行此操作(取决于您的编码风格)。
推荐阅读
- r - RStudio 冻结并且即使在重新安装后也无法工作
- sql - 将列添加到 SELECT 后,PostgreSQL 左连接变得非常慢
- windows - 如何在 windows 中安装和运行 Tor 服务?(Windows v.10)
- php - Laravel 从带有偏移量的集合中获取
- r - 对数据框的值进行操作
- jenkins - 部署了 .net core web api,无法使用节点端口通过 kubernetes 集群访问应用程序
- javascript - 如何在点击时传递道具(v-data-table)
- dax - 使用 Dax 根据特定标准对销售额进行排名
- numpy - 创建numpy数组,其中值在其他两个相同大小排列的范围内
- java - 如何模拟注入的实现列表?