java判断是否含有特殊字符

您所在的位置:网站首页 java判断是否包含指定字符串 java判断是否含有特殊字符

java判断是否含有特殊字符

2023-10-11 17:54| 来源: 网络整理| 查看: 265

/** * 判断是否含有特殊字符 * * @param str * @return true为包含,false为不包含 */ public static boolean isSpecialChar(String str) { String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\]./?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str); return m.find(); } public static final String DEFAULT_QUERY_REGEX = "[!$^&*+=|{}';'\",/?~!#¥%……&*——|{}【】‘;:”“'。,、?]"; /** * 判断查询参数中是否以特殊字符开头,如果以特殊字符开头则返回true,否则返回false * * @param value * @return * @see {@link #getQueryRegex()} * @see {@link #DEFAULT_QUERY_REGEX} */ public boolean specialSymbols(String value) { if (StringUtil.isBlank(value)) { return false; } Pattern pattern = Pattern.compile(getQueryRegex()); Matcher matcher = pattern.matcher(value); char[] specialSymbols = getQueryRegex().toCharArray(); boolean isStartWithSpecialSymbol = false; // 是否以特殊字符开头 for (int i = 0; i < specialSymbols.length; i++) { char c = specialSymbols[i]; if (value.indexOf(c) == 0) { isStartWithSpecialSymbol = true; break; } } return matcher.find() && isStartWithSpecialSymbol; } /** * 获取查询过滤的非法字符 * * @return */ protected String getQueryRegex() { return DEFAULT_QUERY_REGEX; }

经常和公司算法组同事相处,有一天看他们代码,去除字符串中的空格换行符。我的思路就是①正则匹配替换 或者②遍历该字符串挑出合法字符存到另外一片内存里。同事仅仅用同一个数组完成去非法字符,尽管Java不太注重这些,但是高效应该是每个程序员毕生追求。另外吐槽下正则表达式,这种反人类的设计简直。。。好吧,如何绕过正则实现字符串内去空格,请移步《Java字符串去除空格换行符》



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3