我所有的文章都是对我总结学习的总结,那里不好或者冒犯了那里,我先对您说声对不起,请告知我进行改正。

今天java老师作业题目是判断是一个字符串否是回文;


emmmm,我的思路是将字符串逆序,然后使用方法 System.out.println(s1.equals(s2));作为比较。


后来我使用    char[] ch = str.toCharArray();   


将字符串转换为字符数组,在用for循环将其逆序,后发现不知道怎么返回做对比;


后参考网上例子,写出如下代码


public class Stringdemo {
public static void main(String[] args) {
String str = "abcdcbb";
System.out.println(isHuiWen(str));
}
public static boolean isHuiWen(String str){
int lenth = str.length();
for (int i = 0; i < lenth/2; i++) {
if(str.toCharArray()[i]!=str.toCharArray()[lenth-i-1]){//判断头尾是否相同
return false;
}
}
return true;

最后总结,总体代码简单,循环中只要使用tocharArray方法,使字符串中i的转换为数组值,与相应的位置做对比即可判断是否是回文。
下面粘贴一下别人写得,作为参考:
将字符串倒置后逐一比较,实现如下:


将字符串倒置后逐一比较,实现如下:


 public static void main(String[] args) {

                    String str = "";

                    System.out.println("请输入一个字符串");

                    Scanner input = new Scanner(System.in);

                    str = input.next();

                    StringBuffer sb = new StringBuffer(str);

                    sb.reverse();// 将Str中的字符串倒置

                    int count = 0;

                    for (int i = 0; i < str.length(); i++) {

                             if (str.charAt(i) == sb.charAt(i)) {

                                      count++;

                             }

                    }

                    if (count == str.length()) {

                             System.out.println("此字符串是一个回文字符串");

                    } else {

                             System.out.println("此字符串不是一个回文字符串");

                    }

          }



2.将字符串倒置后创建新字符串直接比较,实现如下:


 public static void main(String[] args) {

                    System.out.println("请输入一个字符串");

                    Scanner input = new Scanner(System.in);

                    String str = input.next();

                    StringBuilder sb=new StringBuilder(str);

                    sb.reverse();//将str倒置的方法

                    String newStr=new String(sb);

                    if(str.equals(newStr)){

                             System.out.println(str+"是回文字符串");

                    }else{

                             System.out.println(str+"不是回文字符串");

                    }

          }

3.使用截取字符串的方式比较,实现如下:


 public static void main(String[] args) {
System.out.println("请输入一个字符串");
Scanner input = new Scanner(System.in);
String str = input.next();
int count = 0;
for (int i = 0; i < str.length() / 2; i++) {
if ((str.substring(i, i + 1)).equals(str.substring(str.length() - 1- i, str.length() - i))) {
count++;
}
}
if (count == str.length() / 2) {
System.out.println("是回文字符串");
}else{
System.out.println("不是回文字符串");
}
}

4.判断回文数字(判断纯数字),实现如下


public static void main(String[] args) {

                   int n;

                   System.out.println("请输入一个整数:");

                   // 如果结果为回文数,跳出循环

                   while (true) {

                            Scanner InpuNum = new Scanner(System.in);

                            n = InpuNum.nextInt();

                            if (isHuiWen(n)) {

                                     System.out.println(n + "是回文数!");

                                     break;

                            } else {

                                     System.out.println(n + "不是回文数!");

                            }

                   }

         }

         // 判断的数字是否是回文数

         public static boolean isHuiWen(int n) {

                   int m = reverse(n);

                   if (m == n) {

                            return true;

                   } else {

                            return false;

                   }

         }

         // 将输入的数字进行倒置,以便进行判断是否是回文数

         public static int reverse(int n) {

                   int temp = 0;// 临时变量

                   int j = 0;// 倒置后的数字

                   temp = n;// 将输入的数字赋值给临时变量

                   while (temp != 0) {

                            j = j * 10 + temp % 10;

                            temp /= 10;

                   }

                   return j;

         }

}

注:以上内容引用自https://blog.csdn.net/u013248516/article/details/38044979

 

2019.3.26判断是否回文(java实现)的更多相关文章

  1. The Preliminary Contest for ICPC Asia Xuzhou 2019 G Colorful String(回文自动机+dfs)

    这题建立一棵回文树,然后用dfs搜索答案,但是有一点需要注意,就是打vis的标记时,如果标记为1,那么在好几个节点都对同一个字符i打过标记,此时的搜索从字符i点回溯,回到它的父亲节点,搜索其它的字符, ...

  2. C++判断是回文串还是镜像串

    #include <iostream> #include <string> #include <cstdio> #include <cctype> #p ...

  3. java判断字符串是否回文

    java判断字符串是否回文 /** * java判断字符串是否回文<br><br> * 基本思想是利用字符串首尾对应位置相比较 * * @author InJavaWeTrus ...

  4. Java实验--关于简单字符串回文的递归判断实验

    首先题目要求写的是递归的实验,一开始没注意要求,写了非递归的方法.浪费了一些时间,所谓吃一堑长一智.我学习到了以后看实验的时候要认真看实验中的要求,防止再看错. 以下是对此次的实验进行的分析: 1)递 ...

  5. JAVA用递归来判断回文串

    用递归来判断回文串 思路: ①首先如果是空串,一个字符,则判断是回文串 ②若不满足①,则我们需要对字符串进行递归判断,我们会想到要用第一个字符和最后一个字符进行比较,若相同则,第二个和倒数第二个进行比 ...

  6. 用while判断输入的数字是否回文数

    /* Name:用while判断输入的数字是否回文数 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月18日 04:29:07 Description:用 ...

  7. 如何判断一个单向链表是否为回文链表(Palindrome Linked List)

    题目:给定一个单向链表,判断它是不是回文链表(即从前往后读和从后往前读是一样的).原题见下图,还要求了O(n)的时间复杂度O(1)的空间复杂度. 我的思考: 1,一看到这个题目,大脑马上想到的解决方案 ...

  8. leetcode题解:Valid Palindrome(判断回文)

    题目: Given a string, determine if it is a palindrome, considering only alphanumeric characters and ig ...

  9. valid-palindrome——判断带符号数字字母的字符串是否为回文

    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...

随机推荐

  1. [SinGuaRiTy] 2017-07-24 NOIP2015 模拟赛

    [SinGuLaRiTy-1030] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 对于所有题目: Time Limit: 1s | Mem ...

  2. P2962 [USACO09NOV]灯Lights 对抗搜索

    \(\color{#0066ff}{题目描述}\) 贝希和她的闺密们在她们的牛棚中玩游戏.但是天不从人愿,突然,牛棚的电源跳闸了,所有的灯都被关闭了.贝希是一个很胆小的女生,在伸手不见拇指的无尽的黑暗 ...

  3. City Game UVALive - 3029(悬线法求最大子矩阵)

    题意:多组数据(国外题好像都这样),每次n*m矩形,F表示空地,R表示障碍 求最大子矩阵(悬线法模板) 把每个格子向上延伸的空格看做一条悬线 以le[i][j],re[i][j],up[i][j]分别 ...

  4. 浅谈c语言的线性表的基本操作———基于严蔚敏的数据结构(c语言版)

    主要讲的是线性表的创建,插入及删除: 0. 线性表的建立,对于这类操作主要是利用了结构体的性质,对于定义的线性表的特性主要有三点:首先 Typedef struct { ElemType   *ele ...

  5. 第四章 Appium真机运行测试用例讲解

    -----手机自动化之Appium 手机自动化测试用例虽然可以在模拟器上运行,可是模拟器毕竟和真机还是有区别的.在第二章我们讲到了模拟器上运行测试用例后,我又花了两天的时间,研究了一下真机运行测试用例 ...

  6. 斑马打印机客户端GET和POST,以及后端两种打印方式。

    斑马打印机客户端GET和POST,以及后端两种打印方式. 背景环境:打印机安装在客户端外网.当用户登录时,通过ajax取服务器数据,返回打印机命令,然后客户端通过JS发送给斑马打印机. 1.使用Get ...

  7. 协议 + socket import 和 form xx import *的区别 028

    一 . 网络通信协议(了解) 1 . osi 七层协议 (最好记住 面试会问) 应表会传网数物(应用层 表示层 会话层 传输层 网络层 数据链路层 物理层) 2 .tcp/ip五层 或 tcp/ip四 ...

  8. 8.Spring对JDBC的支持和事务

    1.Spring对JDBC的支持 DAO : Spring中对数据访问对象(DAO)的支持旨在简化Spring与数据访问技术的操作,使JDBC.Hibernate.JPA和JDO等采用统一的方式访问 ...

  9. my13_mysql xtrabackup备份的时间点

    备份原理 xtrabackup的备份时间点是备份结束时刻,记录在xtrabackup_binlog_info 文件中:如果后续需要通过binlog追加操作,则该时间点是起点. 备份开始后,xtrabc ...

  10. ES6数组新增方法总结

    关于数组中forEach() .map().filter().reduce().some().every()的总结 let arr = [1, 2, 3, 4, 5] // forEach遍历数组 a ...