1. StringBuilder
类创建一个字符串构建器
Scanner scanner = new Scanner(System.in);
//输入一个字符串
System.out.println("输入的一个字符串:");
String s1 = scanner.nextLine();
//正向获取字符串
StringBuilder builder = new StringBuilder(s1);
System.out.println(builder);
//反向获取字符串
String reverse = builder.reverse().toString();
System.out.println(reverse);
if(s1.equals(reverse)){
System.out.println("回文");
}else{
System.out.println("不是回文");
}
-
在上述代码中,我们使用Scanner类获取用户输入的字符串。
nextLine()
方法用于读取用户输入的一行字符串,并将其存储在s1
变量中。 -
接下来,我们使用
StringBuilder
类创建一个字符串构建器,将用户输入的字符串s1
传递给它。然后,我们通过调用reverse()
方法将字符串进行反转,并将反向字符串存储在reverse
变量中。 -
在判断回文的部分,我们使用
equals()
方法比较正向字符串s1
和反向字符串reverse
是否相等。如果相等,说明该字符串是回文字符串,否则不是回文字符串。 -
最后,我们通过
System.out.println()
方法将判断结果输出到控制台。
2.使用两个指针(left
和right
)分别指向字符串的首尾字符
Scanner scanner = new Scanner(System.in);
//输入的一个字符串
System.out.println("输入的一个字符串:");
String s = scanner.nextLine();
s = s.toLowerCase();
//使用两个指针(left和right)分别指向字符串的首尾字符
int left = 0;
int right = s.length() - 1;
//循环判断是否为回文
while (left < right) {
if (s.charAt(left) != s.charAt(right)) {
System.out.println(false);
break;
}else{
left++;
right--;
}
System.out.println(true);
break;
}
-
在上述代码中,我们使用Scanner类获取用户输入的字符串。
nextLine()
方法用于读取用户输入的一行字符串,并将其存储在s
变量中。 -
为了进行回文判断,我们将字符串转换为小写,以避免大小写造成的不一致。
-
在判断回文的部分,我们使用两个指针(
left
和right
)分别指向字符串的首尾字符。通过一个循环,不断比较指针指向的字符是否相等。如果发现不相等的字符,则说明该字符串不是回文,将isPalindrome
标记为false
,并跳出循环。 -
最后,我们通过
System.out.println()
方法将判断结果输出到控制台。