检测一个字符串是否为回文? 两种方法

/**

*    检测一个字符串是否为回文?三种方法?

*    方法1:用str.charAt(index) !=  str.charAt(len-i-1)

*    方法2:用StringBuilder . reverse反转

*    方法3:用开关控制

*/

public class reversChar {

    public static void main(String[] args) {
        String str = "123321";    //中文也可以
        System.out.println(checkReverse2(str));
    }

    /**
     * 判断给定的字符串是否是回文? 方法1
     * @param str    需要判断的字符串
     * @return    是回文返回true,否则返回false
     */
    public static boolean checkReverse(String str) {
        for (int i = 0; i < str.length(); i++) {
            if(str.charAt(i) != str.charAt(str.length()-i-1)){
                return false;
            }
        }
        return true;
    }

    /**
     * 判断给定的字符串是否是回文? 方法2
     * @param str    需要判断的字符串
     * @return    是回文返回true,否则返回false
     */
    public static boolean checkReverse2(String str){
        StringBuilder sb = new StringBuilder(str);
        return sb.reverse().toString().equals(str);
    }
}

时间: 2024-10-12 20:44:50

检测一个字符串是否为回文? 两种方法的相关文章

判断一个字符串是否为回文-链队(新建,进队,出队),链栈(新建,进栈,出栈)

回文:字符对称排列的字符串,例如ABCBA 思路:根据队:先进先出和栈: 先进后出的原则,进行比较出队和出栈的字符是否相等.如果相等,则为回文. 创建控制台应用程序. 1 #region 字符节点类 2 class CharNode 3 { 4 public char Char //字符 5 { 6 get; 7 set; 8 } 9 public CharNode Next //下一节点 10 { 11 get; 12 set; 13 } 14 public CharNode(char Cha

回文指的是一个字符串从前面读和从后面读都一 样,编写一个算法判断一个字符串是否为回文。

回文指的是一个字符串从前面读和从后面读都一 样,编写一个算法判断一个字符串是否为回文. 要求: 1)采用链栈实现算法: 2)从键盘输入一个字符串,输出判断结果. #include"stdio.h" #include"stdlib.h" typedef char ElemType; typedef struct stnode { ElemType data; struct stnode *next; }StNode, *LinkStack; int huiwen(ch

C实例--判断一个字符串是否是回文数

回文是指顺读和反读内容均相同的字符串,例如"121","ABBA","X"等.本实例将编写函数判断字符串是否是回文. 引入两个指针变量,开始时,两个指针分别指向字符串的首末字符,当两个指针所指字符相等时,两个指针分别向后和向前移动一个字符位置,并继续比较,直到两个指针相遇,说明该字符串是回文,如果比较过程中发现两个指针指向的字符不相等,则判断该字符串不是回文. 下面是代码的实现部分: #include <stdio.h> #inclu

判断一个字符串是否为回文字符串

#include <stdio.h> #include <assert.h> #include <string.h> int is_pal_str(const char *p) {  assert(p);  int len = strlen(p);  const char *start = p;  const char *end = p+len - 1;  while (start < end)  {   if (*start == *end)   {    st

判断一个字符串是否为回文数字符串

#include<stdio.h> #define STRLEN 100 int Is_palindromic_str(char *str) { int left = 0;//字符串数组的第一个字母的下标 int i = 0; while(str[i] != '\0') { i++; } int right = i - 1;//字符串数组最后一个字母(非'\0')的下标 while(left <= right) { if(str[left] == str[right])//判断左右字符是

读取文件中某个字符串前面的内容,两种方法

方法一:利用PushbackReader,默认有个长度为1的缓冲区,创建对象时需要指出缓冲区的大小. public static void function1(File f)throws IOException { try(PushbackReader pr = new PushbackReader(new FileReader(f), 64)) { char[] cbuf = new char[32]; String lastContent = ""; String content

字符串反序列化成类的两种方法

ApiResult<AllowanceEntity> res = JsonConvert.DeserializeObject<ApiResult<AllowanceEntity>>(result.Value); str = JsonConvert.SerializeObject(obj); 还一个  javascript 里面  添加引用  system.web.extention

判断一个数字是否为回文数

Determine whether an integer is a palindrome. Do this without extra space.(source) 判断一个数字是否为回文数,并且不使用额外的存储空间. "回文"是指正读反读都能读通的句子,那么回文数,就很容易理解,就是指一个数正反读的值是相同的.还有一个要求是不要使用额外的存储空间. Hints: 要将一个数的最高位与最低位比较,取出一个数的最低位容易(x%10),但要得到高位却很难. Solution 1: 首先得知

判断一个数是否为回文数,字符串是否为回文字符串

使用C语言编写程序 判断一个数是否为回文数.(ps:回文数也是一个数字,数字的特点是正反序是同一个数字,如12321,3443就是回文数). 要判断该数字是否为回文数,可以通过模除得到该数的反序数字,进行比较是否相等来判读. 具体实现如下: void Practice() { int num, value, flag, var; value = 0; flag = 1; scanf("%d", &num); var = num; while(num) {//value存储num