java回文数判断 字符串
时间: 2023-10-31 11:10:21 浏览: 41
判断一个字符串是否为回文字符串,可以采用双指针法,即从字符串的两端开始遍历,比较对应位置上的字符是否相等。
以下是一个示例代码实现:
```java
public static boolean isPalindrome(String str) {
if (str == null) {
return false;
}
int left = 0, right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
```
调用该方法可以判断一个字符串是否为回文字符串,例如:
```java
String str1 = "level";
String str2 = "hello";
System.out.println(isPalindrome(str1)); // true
System.out.println(isPalindrome(str2)); // false
```
相关问题
java判断回文字符串
回文字符串是指正读和反读都相同的字符串,例如“level”、“deified”。判断回文字符串的方法可以将字符串分别从首尾开始比较,如果对应的字符都相同,则继续比较下一个字符,直到比较到中间位置或者发现有不相同的字符为止。以下是Java实现回文字符串判断的示例代码:
```java
public static boolean isPalindrome(String str) {
int len = str.length();
// 遍历字符串的前半部分
for (int i = 0; i < len / 2; i++) {
// 比较对应的字符是否相等
if (str.charAt(i) != str.charAt(len - i - 1)) {
return false;
}
}
return true;
}
```
在上述代码中,`len / 2`是为了避免重复比较,因为字符串的长度可能是奇数或偶数。如果是奇数,中间的字符只需要比较一次即可,因此只需要遍历前半部分即可。如果是偶数,前半部分和后半部分对应的字符都要进行比较。`str.charAt(i)`和`str.charAt(len - i - 1)`分别表示字符在字符串中的位置,其中`len - i - 1`表示字符在字符串末尾的位置。如果发现不相同的字符,则直接返回`false`,否则遍历完成后返回`true`。
Java判断字符串是回文串
在Java中,可以使用以下方法来判断一个字符串是否为回文串:
1. 反转字符串后比较:将字符串反转后与原字符串进行比较,如果相同,则该字符串是回文串。
2. 使用字符数组进行比较:将字符串转换为字符数组后,从两端开始同时进行比较,如果对应的字符相同,则继续比较,直到找到不同的字符或者比较完所有字符。如果所有字符都相同,则该字符串是回文串。
例如,下面是使用第一种方法来判断字符串"racecar"是否为回文串的代码:
```
public static boolean isPalindrome(String s) {
String reversed = new StringBuilder(s).reverse().toString();
return s.equals(reversed);
}
```
下面是使用第二种方法来判断字符串"racecar"是否为回文串的代码:
```
public static boolean isPalindrome(String s) {
char[] chars = s.toCharArray();
int left = 0;
int right = chars.length - 1;
while (left < right) {
if (chars[left] != chars[right]) {
return false;
}
left++;
right--;
}
return true;
}
```
在这两个代码中,如果字符串s是回文串,则isPalindrome()方法返回true,否则返回false。