判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串,分别使用(String和StringBuffer实现这个功能。
时间: 2023-07-02 12:11:28 浏览: 205
使用 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()` 方法可以将字符串反转。
相关问题
(3)判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串,分别使用(String和StringBuffer实现这个功能。
使用 String 实现这个功能:
```java
public static boolean isSymmetricString(String str) {
int len = str.length();
for (int i = 0; i < len / 2; i++) {
if (str.charAt(i) != str.charAt(len - 1 - i)) {
return false;
}
}
return true;
}
```
使用 StringBuffer 实现这个功能:
```java
public static boolean isSymmetricString(String str) {
int len = str.length();
StringBuffer sb = new StringBuffer(str);
sb.reverse();
String reverseStr = sb.toString();
return str.equals(reverseStr);
}
```
这两个方法都是通过遍历字符串比较首尾字符是否相等来判断字符串是否对称,只是实现方式略有不同。
用Java编写一个方法,判断一个字符串是否是回文字符串:例如:abba,aba是回文字符串 abab,aabb不是回文字符串
可以使用双指针法,从字符串两端开始比较字符是否相等,直到两个指针相遇或者中间有不相等的字符。
以下是Java实现:
```java
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;
}
```
使用方法:
```java
String str1 = "abba";
String str2 = "aba";
String str3 = "abab";
String str4 = "aabb";
System.out.println(isPalindrome(str1)); // true
System.out.println(isPalindrome(str2)); // true
System.out.println(isPalindrome(str3)); // false
System.out.println(isPalindrome(str4)); // false
```
阅读全文