黑马程序员技术交流社区

标题: 判断输入的字符串是否对称 [打印本页]

作者: 浅末年华    时间: 2017-10-9 12:17
标题: 判断输入的字符串是否对称
要自己手动输入字符串,不能使用数组
作者: 小懒猫    时间: 2017-10-22 19:47
[Java] 纯文本查看 复制代码


import java.util.Scanner;

public class Text {
        /**
         * 判断手动输入的字符串是否对称
         * @param args
         */
        public static void main(String[] args) {
   
                while(true){
                        System.out.print("请输入数据:");
                        Scanner scan = new Scanner(System.in);
                        String read = scan.nextLine();
                        System.out.println("输入数据:" + read);
                        
                        if (read.length() < 1){
                                System.out.println("输入数据过短,请重新输入数据:");
                                continue;
                        }
                        
                        if (isCheck(read) == true) {
                                System.out.println("该字符串对称!");
                        } else {
                                System.out.println("该字符串不对称!");
                        }
                }   
        }
        
        /*
         * method1:通过使用reverse方法
         *
         */
//        public static boolean isCheck(String str){
//                StringBuffer sb = new StringBuffer(str);
//                String reverStr = sb.reverse().toString();
//                return str.equals(reverStr);
//        }

        /*
         * method2:字符比较
         */
        public static boolean isCheck(String str){
               
                int len = str.length() - 1;
                for (int i = 0; i < len / 2; i++) {
                        if (str.charAt(i) == str.charAt(len--)){
                                continue;
                        }
                        return false;
                }
                return true;
        }        
}

作者: fashionkillyou    时间: 2017-10-23 00:39
小懒猫 发表于 2017-10-22 19:47
[mw_shl_code=java,true]

import java.util.Scanner;

赞一个

作者: qq87438004    时间: 2017-10-27 22:50
我来占层楼
作者: _J2EE_LiXiZhen    时间: 2017-10-28 12:33
本帖最后由 _J2EE_LiXiZhen 于 2017-10-28 12:39 编辑

Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
//将字符串变成字符数组
char[] arr = str.toCharArray();
//定义计数器
int count = 0;
//利用for循环判断对称位置字符是否相等
for(int i = 0,j = arr.lengh-1; i<j ; i++,j--) {
    if(arr != arr[j]) {
        System.out.println("不对称");
        break;
    } else {
         count++;
    }
}
if(count == arr.length/2) {
    System.out.println("对称");
}

作者: 林熙奕    时间: 2017-11-13 23:36
判断输入的字符串是否对称:如  abcdcba是对称的。对称的字符串有一个特点就是反转过来还是和原来的字符串一样。

作者: 林熙奕    时间: 2017-11-13 23:40
林熙奕 发表于 2017-11-13 23:36
判断输入的字符串是否对称:如  abcdcba是对称的。对称的字符串有一个特点就是反转过来还是和原来的字符串 ...

所以先把字符串转化成StringBuilder。通过StringBuilder.reverse()的反转方法反转后再转换成string,通过比较,如果和原字符串一样那这个输入的字符串是对称的!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2