java回文数判断 字符串
时间: 2023-10-31 20:10:21 浏览: 84
判断一个字符串是否为回文字符串,可以采用双指针法,即从字符串的两端开始遍历,比较对应位置上的字符是否相等。
以下是一个示例代码实现:
```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回文数判断代码
在Java中,判断一个数是否是回文数通常可以采用两种常见的方法:一种是直接转换字符串比较,另一种是数字反转后比较。
**方法一:字符串比较**
```java
public boolean isPalindrome(int num) {
String str = String.valueOf(num);
int start = 0;
int end = str.length() - 1;
while (start < end) {
if (str.charAt(start) != str.charAt(end)) {
return false;
}
start++;
end--;
}
return true;
}
```
**方法二:数值反转比较**
```java
public boolean isPalindrome(int num) {
int reversedNum = 0, originalNum = num;
while (num != 0) {
int remainder = num % 10;
reversedNum = reversedNum * 10 + remainder;
num /= 10;
}
return originalNum == reversedNum;
}
```
在这两个方法中,如果一个整数在转换成字符串后正向读取和反向读取结果一样,那么它就是回文数。
编写一个Java应用程序。用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。字符串方法
编写一个Java应用程序,可以按照以下步骤完成:
1. **创建主函数**:
首先,我们需要创建一个`main`方法作为程序入口。
```java
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个1到99999之间的整数:");
int number = scanner.nextInt();
scanner.close(); // 关闭Scanner
checkNumberProperties(number);
}
// 接下来的函数定义...
}
```
2. **定义检查函数**:
创建`checkNumberProperties`函数来判断数字位数和是否为回文。
```java
public static void checkNumberProperties(int number) {
String strNumber = String.valueOf(number); // 将int转换为String便于操作
// 判断位数
int digitCount = strNumber.length();
System.out.printf("数字有 %d 位。\n", digitCount);
// 判断是否为回文
if (isPalindrome(strNumber)) {
System.out.println("%s 是回文数。", strNumber);
} else {
System.out.println("%s 不是回文数。", strNumber);
}
}
// 回文判断方法
private static boolean isPalindrome(String str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false; // 如果任意一对字符不相等,则不是回文
}
left++;
right--;
}
return true; // 所有字符都匹配,所以是回文
}
```
3. **运行程序**:
用户输入数字后,`checkNumberProperties`会被调用并展示结果。
阅读全文