定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。例如:“abcba”、"上海自来水来自海上"均为对称字符串。
设计思路首先,从键盘录入一个字符串。编写一个方法接收该字符串,在方法中,使用StringBuilder类创建对象,查阅相关API,将字符串反转后再比较内容,如果相同则是对称字符串。
代码实现1package com.itheima.APITest.Test05;
import java.util.Scanner;
/*
请定义一个方法用于判断一个字符串是否是对称的字符串,
并在主方法中测试方法。例如:"abcba"、"上海自来水来自海上"均为对称字符串。
*/
public class Demo {
public static void main(String[] args) {
//一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
//public String nextLine()
//将此扫描仪推进到当前行并返回跳过的输入。
String s = sc.nextLine();
//调用判断字符串为对称字符串的方法
boolean b = judgeSymmeticString(s);
System.out.println("该字符串是对称字符串?");
System.out.println(b);
}
public static boolean judgeSymmeticString(String s) {
//public StringBuilder(String str)
//构造一个初始化为指定字符串内容的字符串构建器。 字符串构建器的初始容量为16加上字符串参数的长度。
StringBuilder sb = new StringBuilder(s);
//public StringBuilder reverse()
//导致该字符序列被序列的相反代替。
sb.reverse();
//public String toString()
//返回表示此顺序中的数据的字符串。
String s1 = sb.toString();
//public boolean equals(Object anObject)
//将此字符串与指定对象进行比较。 如果且仅当参数不是null且是表示与该对象相同的字符序列的String对象时,结果为true 。
return s1.equals(s);
}
}
代码实现2
经测试,代码1的程序不够健壮,当传递的String类为null时,会抛出异常NullPointerException,为了解决这个问题,代码做了一些优化。
package com.itheima.APITest.Test05;
import java.util.Scanner;
/*
为了解决空指针异常,对代码做了一些优化
*/
public class Demo02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine();
// s = null;
boolean b = judgeSymmeticString(s);
System.out.println("字符串是否对称?");
System.out.println(b);
}
public static boolean judgeSymmeticString(String s) {
//为了程序的健壮性,当传递的参数为null时,直接返回false
if (s == null) {
return false;
}
StringBuilder sb = new StringBuilder(s);
sb.reverse();
String s1 = sb.toString();
return s1.equals(s);
}
}
效果展示
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)