黑马程序员技术交流社区

标题: 判断一个字符串是否是对称字符串 [打印本页]

作者: 流连忘返    时间: 2015-11-14 20:42
标题: 判断一个字符串是否是对称字符串
package com.itheima;

import java.util.Scanner;

/*
* 3、判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
*/
public class Test3 {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                String str = sc.next();//输入要判断的字符串
                char[] ch = str.toCharArray();//把字符串变成字符数组
                // byte[] by = str.getBytes();
                int k = 0, l = 0;
                for (int i = 0, j = ch.length - 1; i < ch.length / 2; i++, j--) {
                        if (ch == ch[j]) {//比较两边字符是否相等
                                k++;
                        } else {
                                l++;
                        }
                }
                if (k != 0 & l == 0) {
                        System.out.println("是对称字符串");//输出结果
                } else {
                        System.out.println("不是对称字符串");
                }
        }
}
大家看下有什么可以改进的
作者: 1379号监听员    时间: 2015-11-14 21:59
单与变成双与,提提高一丢丢
作者: nice非飞    时间: 2015-11-14 22:04
看看,先顶一个
作者: 1379号监听员    时间: 2015-11-14 22:42
本帖最后由 1379号监听员 于 2015-11-14 22:43 编辑

刚刚结合你的代码做了一个判断数字是否对称的,其实可以修改的有两处,你自己看吧。

import java.util.Scanner;
public class Test2 {
    public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一串数字");
            String str = sc.next();//输入要判断的字符串
            char[] ch = str.toCharArray();//把字符串变成字符数组
            // byte[] by = str.getBytes();
            int[] arr = new int [ch.length];
            for (int i = 0; i < arr.length; i++) {
                                arr = Integer.parseInt(ch+"");
                                System.out.print(arr);
                        }            
           
// System.out.println();
            
//System.out.println(arr.length/2);
            int k = 0;
            for (int i = 0; i < arr.length/2; i++) {
                    if (arr == arr[arr.length-i-1]) {//比较两边字符是否相等
                            k++;
                    } else
                            break;
                    
            }
            if (k == arr.length/2) {
                    System.out.println("是对称数字");//输出结果
            } else {
                    System.out.println("不是对称数字");
            }
    }
}





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