Java中判断字符串是否对称的方法是使用双指针,从字符串的两端开始比较字符是否相等。
在Java中,判断一个字符串是否对称,可以通过比较字符串与其反转后的字符串是否相等来实现,下面将详细介绍如何实现这个功能。
1、使用StringBuilder的reverse()方法
我们可以使用StringBuilder类的reverse()方法来反转字符串,将反转后的字符串与原字符串进行比较,如果相等,则说明字符串是对称的。
示例代码:
public class StringSymmetry { public static void main(String[] args) { String str = "abcdcba"; System.out.println("字符串"" + str + ""是否对称:" + isSymmetric(str)); } public static boolean isSymmetric(String str) { StringBuilder sb = new StringBuilder(str); return str.equals(sb.reverse().toString()); } }
2、使用双指针法
另一种方法是使用双指针法,从字符串的两端开始,逐个比较对应位置的字符是否相等,如果所有对应位置的字符都相等,则说明字符串是对称的。
示例代码:
public class StringSymmetry { public static void main(String[] args) { String str = "abcdcba"; System.out.println("字符串"" + str + ""是否对称:" + isSymmetric(str)); } public static boolean isSymmetric(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、使用数组和循环遍历
还可以将字符串转换为字符数组,然后使用循环遍历数组,比较对应位置的字符是否相等,如果所有对应位置的字符都相等,则说明字符串是对称的。
示例代码:
public class StringSymmetry { public static void main(String[] args) { String str = "abcdcba"; System.out.println("字符串"" + str + ""是否对称:" + isSymmetric(str)); } public static boolean isSymmetric(String str) { char[] chars = str.toCharArray(); for (int i = 0; i < chars.length / 2; i++) { if (chars[i] != chars[chars.length 1 i]) { return false; } } return true; } }
4、使用Java 8的Stream API和Lambda表达式
我们还可以使用Java 8的Stream API和Lambda表达式来实现这个功能,将字符串转换为字符数组,然后使用Stream API对数组进行遍历,比较对应位置的字符是否相等,如果所有对应位置的字符都相等,则说明字符串是对称的。
示例代码:
import java.util.stream.IntStream; import java.util.stream.Collectors; import java.util.List; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; import java.util.stream.IntStream; import java.util.stream.Collectors; import java.util.stream.StreamSupport; import java.util.stream.Stream; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Collectors; import java.util.stream.StreamSupport; import java.util.stream.Stream; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Collectors; import java.util.stream.StreamSupport; import java.util.stream.Stream; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Collectors; import java.util.stream.StreamSupport; import java.util.stream.Stream; import java
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/482319.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除