zoukankan      html  css  js  c++  java
  • 用递归来判断输入的字符串是否是回文

    设计思路:导入Scanner类输入字符串,再将输入的字符串转化为字符数组,然后从字符串左右两侧依次比较字符chu是否相同,若相同递归返回读取的字符个数,若返回字符的个数==输入字符串的长度,则输出该字符串是回文,否则输 出该字符串不是回文

    import java.util.Scanner;
    
    public class test1 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner input = new Scanner(System.in);
            String a = input.nextLine();
            char[] temp = a.toCharArray();         
            int c = fun(0, temp.length-1, temp);
            if (c == temp.length)
                System.out.println("该字符串是回文数");
            else
                System.out.println("该字符串不是回文数");
            input.close();
        }
    
        public static int fun(int i, int j, char[] a) {   //定义一个函数判断字符串是否是回文
            
            if (j == i)     //字符串长度为奇数
                return 1;
            else if(i - j==1)  //字符串长度为偶数
                return 0;
            else {
                if (a[i] == a[j])        //判断两侧的字符是否相同
                {
                    i++;
                    j--;
                    return (2 + fun(i, j, a));  //递归调用函数
                }
                else
                    return -100;  //如果两侧的字符不,直接结束调用
            }
        }
    }

    心得体会:刚开始不会是因为对于递归理解不够透彻,主要对于递归的结束条件不清楚,总是以为要加个break才可以结束调用,后来才明白递归结束就是指函数最后一次调用。

    next和nextLine的区别:

    next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。

    nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的。

  • 相关阅读:
    在controller的action内, 得到用户发过来的请求地址和参数url
    php Connection timed out after 30000 milliseconds
    htmlspecialchars_decode 解决掉 &
    max_spare_servers到底是个什么意思?
    mysql 不同条件count ,多条件count()
    阿里云centOS7.4 ftp连接不上的问题
    阿里云 导入自定义的镜像
    thinkphp3.2.3 + nginx 配置二级域名
    FlashFXP客户端 FTP连接,连接很慢的情况,
    PHP对象的使用,什么时候可以用中括号[], 什么时候可以用箭头->
  • 原文地址:https://www.cnblogs.com/weixiao1717/p/11586586.html
Copyright © 2011-2022 走看看