问题及解决办法

1.question:通过删除既非字母有非数字的字符过滤这个字符串。answer:创建一个新的空字符串构建器,将字符串中每一个字母或数字字符添加到字符串构建器中,然后从这个构建器返回所求的字符串。可以使用Character类中的isLetterOrDigit(ch)方法来检测字符ch是否是数字或字母。2.question:倒置过滤后的字符串得到一个新字符串。使用equal方法对倒置后的字符串和过滤后的字符串进行比较。
复制代码

完整程序

PalindromeIgnoreNonAlphanumeric.java

import java.util.Scanner;
public class PalindromeIgnoreNonAlphanumeric {public static void main(String[] args){Scanner input = new Scanner(System.in);System.out.println("Enter a string:");String s = input.nextLine();System.out.println("Ignoring nonalphanumeric characters,\nis "+s+" a palindrome? "+isPalindrome(s));}public static boolean isPalindrome(String s){String s1=filter(s);String s2=reverse(s1);return s2.equals(s1);}public static String filter(String s){StringBuilder stringBuilder = new StringBuilder();for(int i=0;i<s.length();i++){if(Character.isLetterOrDigit(s.charAt(i))){stringBuilder.append(s.charAt(i));}}return stringBuilder.toString();}public static String reverse(String s){StringBuilder stringBuilder=new StringBuilder(s);stringBuilder.reverse();return stringBuilder.toString();}
}
复制代码

输出:

//ex1:
Enter a string:
ab<c>b?a
Ignoring nonalphanumeric haracters,
is ab<c>b?a a palindrome? true
//ex2:
Enter a string:
abcc><?cab
Ignoring nonalphanumeric haracters,
is abcc><?cab a palindrome? falsefilter(String s)方法逐个检查字符串s中的每个字符,如果字符是字母或者数字字符,就将他复制到字符串构建器。filter方法返回构建器中的字符串。reverse(String s)方法创建一个新字符串,这个新串是对给定字符串s的倒置。filter方法和reverse方法都会返回一个新字符串,原始字符串并
复制代码

转载于:https://juejin.im/post/5ad8b6a9518825672a027529

判断回文串时忽略既非字母又非数字的字符相关推荐

  1. 判断回文串,最长回文串方法

    1.判断回文串 回文串就是从左看与从右看都是一样的字符串,例如abcba,acddca 判断一个字符串是否为回文串:如判断s=abcdcba是否为回文串,只要看s以中间位分界线,s的左右两边是否相等即 ...

  2. SDUT F - 判断回文串

    F - 判断回文串 用线段树去维护字符串前缀哈希,基础的字符串哈希是在一整段哈希中截取一部分哈希,但线段树的维护恰好将其反转过来,是维护区间哈希,通过一种 与字符串哈希获取某一段哈希 相反的方法将其维 ...

  3. UVA11584 划分成回文串 Partitioning by Palindromes(线性DP划分+DP判断回文串)

    整理的算法模板合集: ACM模板 依旧是线性DP 我们使用闫氏DP分析法 总体DP转移的时间复杂度为O(n2)O(n^2)O(n2). 但是这里牵扯到判断 i\tt ii 到 j\tt jj 是否为回 ...

  4. 怎么判断一个字符串的最长回文子串是否在头尾_LeetCode 5 迅速判断回文串的Manacher算法...

    本文始发于个人公众号: TechFlow 题意 Given a string s, find the longest palindromic substring in s. You may assum ...

  5. Leetcode:125.验证回文串,917仅仅反转字母,387字符串的第一个唯一字符

    文章目录 125.验证回文串 题目描述 示例 思路分析 代码实现 917.仅仅反转字母 题目描述 示例 思路分析 代码实现 387.字符串的第一个唯一字符 题目描述 示例 思路分析 代码实现: 125 ...

  6. LeetCode 409. 最长回文串(构造最长回文判断)

    最长回文串 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设字 ...

  7. 怎么判断一个字符串的最长回文子串是否在头尾_【Leetcode每日打卡】最长回文串...

    干货预警:所有文章都会首发于我的公众号[甜姨的奇妙冒险],欢迎watch. 一.来历: 力扣从3月开始开启了每日一题打卡活动,于是跟风加入了打卡大军,这两天写评论.发题解,没想到反响还不错,收到了来自 ...

  8. 【算法】双指针算法 ( 双指针算法分类 | 相向双指针 | 有效回文串 )

    文章目录 一.双指针算法分类 二.相向双指针示例 ( 有效回文串 ) 一.双指针算法分类 面试时经常遇到 限制算法复杂度为 O(n)O ( n )O(n) 的情况 , 就需要使用以下算法 : 双指针算 ...

  9. 求最长回文串-从动态规划到马拉车之路(下)

    预备知识: (1)在一个数轴上有两点i和j(i<=j)关于点m对称,那么有 i = 2m-j: 证明: 因为 i<=j 且 i 和 j 关于 m 对称,那么有 (i + j)/ 2 = m ...

最新文章

  1. 【推导】计蒜客17119 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F. Trig Function
  2. fedora14 an mysql_Fedora 14下 MySQL 更改密码
  3. Python ID 生成(UUID、自增、19位雪花算法ID)
  4. 解决python中csv文件中文写入问题
  5. 大数据分析应具备哪些属性
  6. css3 flex布局九宫格,css3最全flex布局结构整理
  7. 管理感悟:掌握工作的决定权
  8. JavaScript开发者应懂的33个概念js-33-concepts
  9. OpenGL ES 2.0 系列一
  10. html里的底部c怎么打出来,版权所属符号-网站底部版权符号怎么打出来
  11. 软件测试需要掌握哪些技术?
  12. kali之破解隔壁老王wifi
  13. 2021年高处作业安装拆除维护证考试题库及安装拆除维护试题解析
  14. 串口转 HID 键盘鼠标芯片 CH9329
  15. 8个可以免费下载3D模型的网站,快收藏起来吧~
  16. 修改arcgis infowindow 放大和缩小的模板
  17. 传说之下三重审判用计算机怎么弹,传说之下三重审判模拟器
  18. 聊天机器人简介与体验网址
  19. java integer long 转换_long(Long)与int(Integer)之间的转换
  20. 字节跳动发布企业社会责任报告:92%双一流高校入驻抖音,总课时超145万小时

热门文章

  1. UGUI 屏幕适配 导致 BoxCollider无效 解决记录
  2. 【P000-008】交易费计算系统,1.1版
  3. ajax鼠标滚动请求 或 手机往下拉请求
  4. Linux 关闭防火墙命令
  5. 下个月计划【2009-5】
  6. C++_const修饰指针_指针和数组_指针和函数_指针配合数组和函数案例_用指针数组实现冒泡排序---C++语言工作笔记024
  7. Sentinel服务熔断配置fallback和blockHandler_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0052
  8. STM32工作笔记0064---输入捕获实验
  9. Android学习笔记---22_访问通信录中的联系人和添加联系人,使用事物添加联系人...
  10. java框架实例---自定义标签实例