A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

浅末年华

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 浅末年华 初级黑马   /  2017-10-9 12:17  /  2269 人查看  /  6 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

要自己手动输入字符串,不能使用数组

6 个回复

倒序浏览
[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;
        }        
}
回复 使用道具 举报
小懒猫 发表于 2017-10-22 19:47
[mw_shl_code=java,true]

import java.util.Scanner;

赞一个
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
我来占层楼
回复 使用道具 举报
本帖最后由 _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("对称");
}
回复 使用道具 举报
判断输入的字符串是否对称:如  abcdcba是对称的。对称的字符串有一个特点就是反转过来还是和原来的字符串一样。
回复 使用道具 举报
林熙奕 发表于 2017-11-13 23:36
判断输入的字符串是否对称:如  abcdcba是对称的。对称的字符串有一个特点就是反转过来还是和原来的字符串 ...

所以先把字符串转化成StringBuilder。通过StringBuilder.reverse()的反转方法反转后再转换成string,通过比较,如果和原字符串一样那这个输入的字符串是对称的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马