JAVA校验字符串中的每个字符是否都在GB2312字符集中

需要在服务器端校验前台表单中传来的字符串,是否符合GB2312编码(所有字符都在GB2312字符集)。

import java.io.UnsupportedEncodingException;

public class EncodingValidationUtil {
    /**
     * 校验目标字符串中的字符是否均在GB2312字符集
     * @param str
     * @return
     */
    public static boolean isGB2312(String str) {
        if(str == null || "".equals(str)) return false;
        String newStr = null;
        try {
            newStr = new String(str.getBytes("GB2312"), "GB2312");
        } catch (UnsupportedEncodingException e) {
            return false;
        }
        if(!str.equals(newStr)){
            return false;
        }
        return true;
    }
}

经校验:诸如“囧”一类的汉字会返回false,英文字母和常用汉字会返回true。

时间: 2024-11-05 18:37:25

JAVA校验字符串中的每个字符是否都在GB2312字符集中的相关文章

Java 去除字符串中的空格和其他字符

直接上代码了. <span style="font-size:18px;">import java.util.regex.Matcher; import java.util.regex.Pattern; /** * java 去除字符串中的空格和其他字符 * @author YYBJ * @date 2014-10-19 */ public class CleanString { public static String replaceBlank(String str) {

java统计字符串中字符及子字符串个数

import java.util.Scanner;public class Counter { static Scanner scanner = new Scanner(System.in); public static void count(String s) { int low, upper, num, others; low = upper = num = others = 0; for (int i = 0; i < s.length(); i++) { if (Character.is

Java清除字符串中重复出现的字符的代码

在工作过程,将做工程过程比较好的内容做个珍藏,如下内容是关于Java清除字符串中重复出现的字符的内容,应该是对大家有较大用. public class StringCtrl { public static void main(String[] args){ String s = "ajjbaacsa"; StringCtrl sctrl = new StringCtrl(); System.out.println(sctrl.rmRepeated(s)); } String rmRep

华为OJ:找出字符串中第一个只出现一次的字符

可以稍微让代码写的好看,不用直接写双循环的话,就可以写成函数的调用,重用性也很高. import java.util.Scanner; public class findOnlyOnceChar { public static boolean FindChar(String pInputString, char pChar){ int count=0; for(int i=0;i<pInputString.length();i++){ if(pInputString.charAt(i)==pCh

求字符串中第一个只出现一次的字符

问题描述:给定一个字符串,假设字符串中只包含字母和数字,求出这个字符串中第一个只出现一次的字符. 分析:这个题目想要做出来还是比较简单的,关键是如何用高效的方法求解.这里我提供两种方法: 解法一:蛮力法.具体思想为,从第一位开始,拿每一位和后面的每一位进行比较,如果没有出现,则直接输出这个字符. 如果出现,则从第二位开始,再和后面的每一位进行比较,依次类推. 算法的时间复杂度为O(n^2). 解法二:哈希法.采用两次扫描即可实现.需要提前构建一个哈希表,把字符当成key值,把出现的次数当成val

找出字符串中第一个只出现一次的字符

find the first unique character in  a string and you can just traverse this string only one time. if there is no such character, just return '#' and '#' will not appear in the string, else return the character you find. for example: "aAbBABac",

字符串中第一个只出现一次的字符,如何优化算法使得遍历次数更少?

/** * 只允许遍历一遍字符串 */ public class 找出字符串中第一个只出现一次的字符 { public static void main(String[] args) { // 测试字符串 String str = "asdsacjj"; // 字符串转化成字符 char[] strToChar = str.toCharArray(); int len = strToChar.length;//字符串长度 //hashset用于判断是否出现过 HashSet<Ch

Java提取字符串中的手机号

java通过正则表达式提取字符串中的手机号,简单快速方便,能提取多个手机号 public String getTelnum(String sParam){ if(sParam.length()<=0) return ""; Pattern pattern = Pattern.compile("(1|861)(3|5|8)\\d{9}$*"); Matcher matcher = pattern.matcher(sParam); StringBuffer bf

字符串中第一个只出现一次的字符

题目:在一个字符串中找到第一个只出现一次的字符.比如"lavor_zl"第一个只出现一次的字符是'a'. 解题思路: C/C++字符使用Ascii编码,一个字符占一个字节即可以表示2的8次方个数,那么C/C++字符可以表示的256个字符,因此可以用一个256的数组来保存各个字符出现的次数,当然256个字符的Ascii值是0-255之间的所有数,而且'\0'的Ascii值0,所以可以用数组的下标来表示记录的是哪一个字符的个数.然后再遍历一次字符串,找出第一个只出现一次的字符. 算法实现: