黑马程序员技术交流社区
标题:
判断一个字符串是否是对称字符串
[打印本页]
作者:
lipanquan
时间:
2014-1-3 19:31
标题:
判断一个字符串是否是对称字符串
package com.itheima;
import java.util.Scanner;
public class Test3 {
/**第三题
* 判断一个字符串是否是对称字符串
* 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
* @param args
*/
//用于跳出循环的标志
private static boolean isrun=true;
//
private static boolean issymmetry;
//主函数
public static void main(String[] args) {
//循环接收并处理输入的字符
while(isrun)
{
issymmetry = true;
//初始化接收键盘输入的scanner变量
Scanner userInput = new Scanner(System.in);
String input = userInput.nextLine();
int inputLength = (int)(input.length()/2);
System.out.println("inputLength:" + inputLength);
int i = 0;
while(inputLength != i)
{
System.out.println("i:" + i);
if(input.substring(i, (i + 1)).equals(input.substring((input.length() - i-1), (input.length() - i))))
{
System.out.println("第" + (i+1) + "个字符相对称于第" + (input.length()-i) + "个");
}
else
{
issymmetry = false;
System.out.println(input + "不是对称字符串");
break;
}
i ++;
}
if(issymmetry)
{
System.out.println(input + "是对称字符串");
}
}
}
}
作者:
午夜b'Boy
时间:
2014-1-3 19:46
可以将字符串通过subString平分为两个子字符串,(单双处理)一个子字符串反转后epuals另一个子字符串
作者:
taoge
时间:
2014-1-3 20:31
直接用StringBuilder的字符串反转方法很简单
public class Test3 {
private static Scanner sc;
public static void main(String[] args) {
reverseString();
}
public static void reverseString() {
System.out.println("请输入,按enter线束:");
//接收键盘输入
sc = new Scanner(System.in);
String input = sc.next();
//将String转为StringBuilder
StringBuilder sb = new StringBuilder(input);
//使用StringBuilder的字符串反转方法reverse()
StringBuilder sv = sb.reverse();
//比较反转前后是否一样,一样的就是对称的,反之不对称
if (input.equals(sv))
{
System.out.println("是对称的");
}
else
{
System.out.println("不是对称的");
}
}
}
复制代码
作者:
马富林
时间:
2014-1-3 20:38
楼主想复杂了,如果仅仅为了判断一个字符串是不是对称字符串,直接用下面的代码就好了,很简单:
public class Demo {
public static void main(String[] args){
String s="abcba";
System.out.println(fun(s)); //结果为true,是对称字符串
System.out.println(fun("asdf")); //结果为false,不是对称字符串
}
public static boolean fun(String str){
StringBuffer sb=new StringBuffer(str);
StringBuffer newsb=sb.reverse();
String newstr=newsb.toString();
return str.equals(newstr);
}
}
复制代码
作者:
lipanquan
时间:
2014-1-4 08:07
对呀!我咋没想到呢?可以将字符串的长度%2判断是0还是1就行了,然后再取子串这样简单多了!而且运行效率也提高了n倍呢!谢谢大家了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2