用java写一个判断回文字符串的程序
时间: 2023-09-09 17:04:23 浏览: 218
判断回文字符串小程序
### 回答1:
可以这样写:public class Palindrome { public static boolean isPalindrome(String str) { int i = 0;
int j = str.length() - 1; while (i < j) {
if (str.charAt(i) != str.charAt(j)) {
return false;
}
i++;
j--;
} return true;
} public static void main(String[] args) {
String str1 = "山西运煤车煤运西山";
System.out.println(isPalindrome(str1));
}
}
### 回答2:
可以使用以下的Java程序来判断一个字符串是否是回文字符串:
```java
import java.util.Scanner;
public class Palindrome {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = scanner.nextLine();
if (isPalindrome(str)) {
System.out.println(str + " 是一个回文字符串。");
} else {
System.out.println(str + " 不是一个回文字符串。");
}
}
public 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;
}
}
```
这个程序通过一个`isPalindrome`方法来判断一个字符串是否是回文字符串。它使用两个指针`left`和`right`,初始时分别指向字符串的第一个字符和最后一个字符。在每一步循环中,它比较`left`和`right`所指向的字符是否相等,如果不相等就返回`false`,表示该字符串不是回文字符串。如果循环结束后都没有返回`false`,则表示该字符串是回文字符串,返回`true`。在`main`方法中,它首先获取用户输入的字符串,然后调用`isPalindrome`方法进行判断,最后输出相应的结果。
### 回答3:
判断回文字符串的程序可以通过以下Java代码实现:
```java
import java.util.Scanner;
public class PalindromeCheck {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String input = scanner.nextLine();
if (isPalindrome(input)) {
System.out.println("是回文字符串");
} else {
System.out.println("不是回文字符串");
}
}
public static boolean isPalindrome(String str) {
// 去除字符串中的空格和标点符号,并转换为全部小写
String formattedStr = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
// 使用双指针法判断是否为回文字符串
int left = 0;
int right = formattedStr.length() - 1;
while (left < right) {
if (formattedStr.charAt(left) != formattedStr.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
}
```
该程序先要求用户输入一个字符串,然后调用`isPalindrome`方法判断输入的字符串是否为回文字符串。`isPalindrome`方法会做以下几个步骤:
1. 首先使用正则表达式将字符串中的非字母、非数字字符去除,并将字符串转换为全部小写。这是因为回文字符串不区分大小写,且忽略空格和标点符号。
2. 接下来使用双指针法判断是否为回文字符串。定义一个左指针和一个右指针,初始分别指向字符串的首尾位置。如果左指针所指的字符不等于右指针所指的字符,则不是回文字符串,返回`false`;如果指针所指的字符相等,则继续将左指针向右移动,右指针向左移动,继续比较。直到左指针大于等于右指针时停止循环。
3. 如果循环结束,即左指针大于等于右指针,说明字符串是回文字符串,返回`true`;否则返回`false`。
最后,根据返回的判断值,输出相应的结果,即输入的字符串是回文字符串还是不是回文字符串。
阅读全文