用String和StringBuffer来实现判断一个字符串是否是对称字符串
时间: 2024-01-14 22:03:00 浏览: 78
可以使用以下代码来判断一个字符串是否是对称字符串:
```
public static boolean isSymmetric(String str) {
if (str == null || str.length() == 0) {
return true;
}
StringBuffer sb = new StringBuffer(str);
return str.equals(sb.reverse().toString());
}
```
这个方法首先会判断输入的字符串是否为空或者长度为0,如果是的话直接返回true,因为空字符串也是对称字符串。接着,使用StringBuffer将输入的字符串反转,然后将反转后的字符串转换为String类型,最后判断反转前后的字符串是否相等。如果相等,则说明原始字符串是对称字符串,否则不是。
相关问题
实验 21 StringBuffer(补充) 实验要求 (1)将数组拼接成一个字符串,分别使用String和StringBuffer实现,比如int[] arr = {11,55,33 ,44 ,22} ;,形成这样一个字符串:[11, 55, 33, 44, 22] (2)从键盘录入一个字符串,分别使用String和StringBuffer实现字符串的反转 (3)判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串,分别使用(String和StringBuffer实现这个功能。
(1)使用 String 和 StringBuffer 实现数组拼接成字符串:
```java
int[] arr = {11, 55, 33, 44, 22};
// 使用 String 实现
String str1 = Arrays.toString(arr);
System.out.println(str1);
// 使用 StringBuffer 实现
StringBuffer sb = new StringBuffer("[");
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]);
if (i != arr.length - 1) {
sb.append(", ");
}
}
sb.append("]");
String str2 = sb.toString();
System.out.println(str2);
```
输出结果:
```
[11, 55, 33, 44, 22]
[11, 55, 33, 44, 22]
```
(2)使用 String 和 StringBuffer 实现字符串反转:
```java
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
// 使用 String 实现
String reversedStr1 = "";
for (int i = str.length() - 1; i >= 0; i--) {
reversedStr1 += str.charAt(i);
}
System.out.println(reversedStr1);
// 使用 StringBuffer 实现
StringBuffer sb = new StringBuffer(str);
String reversedStr2 = sb.reverse().toString();
System.out.println(reversedStr2);
```
输入一个字符串,比如 `hello`,输出结果:
```
olleh
olleh
```
(3)使用 String 和 StringBuffer 判断一个字符串是否是对称字符串:
```java
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
// 使用 String 实现
boolean isSymmetric1 = true;
for (int i = 0; i < str.length() / 2; i++) {
if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
isSymmetric1 = false;
break;
}
}
System.out.println(isSymmetric1);
// 使用 StringBuffer 实现
StringBuffer sb = new StringBuffer(str);
sb.reverse();
boolean isSymmetric2 = str.equals(sb.toString());
System.out.println(isSymmetric2);
```
输入一个字符串,比如 `abba`,输出结果:
```
true
true
```
判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串,分别使用(String和StringBuffer实现这个功能。
使用 String 实现:
```java
public static boolean isSymmetric(String str) {
int n = str.length();
for (int i = 0; i < n / 2; i++) {
if (str.charAt(i) != str.charAt(n - i - 1)) {
return false;
}
}
return true;
}
```
使用 StringBuffer 实现:
```java
public static boolean isSymmetric(String str) {
int n = str.length();
StringBuffer sb = new StringBuffer(str);
sb.reverse();
return str.equals(sb.toString());
}
```
其中,StringBuffer 的 `reverse()` 方法可以将字符串反转。
阅读全文