程序要求:输入任意一个字符串,判断是否回文
package eadu.wust.examples;
import java.util.Scanner;
public class Ex_2 {
//定义一个函数,判断回文
//返回值是一个布尔值,所以用boolean接收
//整个函数的作用就是判断第i个和第s.length()-i-1,解释一下为什么是s.length()-1-i,字符串从0开始到s.length()-1结束,从前开始数第i个,对应的就是从后开始的第i个,说白了就是判断对称
//字符串的比较不要用==,要用equals()函数,但是单个字符的比较依旧可以用==和!=
public static boolean isPalindrome(String s){
char ch1,ch2;
for(int i=0;i<s.length()/2;i++){
ch1=s.charAt(i);
ch2=s.charAt(s.length()-1-i);
if(ch1!=ch2){
return false;
}
}
return true;
}
//nextLine()的用法在上一篇文章里已经提到过
public static void main(String[] args) {
System.out.print("请输入字符串:");
String s=new Scanner(System.in).nextLine();
System.out.println(isPalindrome(s));
}
}
运行结果:
改编:输入多个字符串,判断是否回文,直至出现#结束循环
package eadu.wust.examples;
import java.util.Scanner;
public class Ex_2 {
//定义一个函数,判断回文
//返回值是一个布尔值,所以用boolean接收
//整个函数的作用就是判断第i个和第s.length()-i-1,解释一下为什么是s.length()-1-i,字符串从0开始到s.length()-1结束,从前开始数第i个,对应的就是从后开始的第i个,说白了就是判断对称
public static boolean isPalindrome(String s){
char ch1,ch2;
for(int i=0;i<s.length()/2;i++){
ch1=s.charAt(i);
ch2=s.charAt(s.length()-1-i);
if(ch1!=ch2){
return false;
}
}
return true;
}
//nextLine()的用法在上一篇文章里已经提到过
public static void main(String[] args) {
System.out.print("请输入字符串:");
String s=""; //定义一个空串
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine()){ //判断是否有下一个字符串
s=sc.nextLine(); //让s接收下一个字符串
if(s.equals("#")) //判断是否出现#
break;
else
System.out.println(isPalindrome(s));
}
}
}
运行结果:
萌新初学Java,主要是想记录一下学习过程,如有错误欢迎指正,也可以私聊讨论