今天给各位分享java判断unicode的知识,其中也会对JAVA判断闰年进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、Java或Android怎样判断字库里有无对应unicode的字2、技术问题:java中如何判断字符串内容是否是编码3、Java获取字符的Unicode编码以及如何过滤特4、Java判断字符串是中文还是英文
Java或Android怎样判断字库里有无对应unicode的字
这是Font类的一些方法。
boolean canDisplay(char c)
检查此 Font 是否具有指定字符的字形。
boolean canDisplay(int codePoint)
检查此 Font 是否具有指定字符的字形。
int canDisplayUpTo(String str)
指示此 Font 是否可以显示指定的 String。
你可以用canDisplay(int codePoint)方法来判断,这里的codePoint就是unicode代码点。
技术问题:java中如何判断字符串内容是否是编码
如果是Java的String对象的话,则一定是Unicode的,这个没有为什么,Java就是这么定的。
我猜你的问题应该是如何判断一段字节流是什么编码类型,对吗?比如一个文件,或是网络上面取下来的一段Byte数组,你需要用一个合适的编码来解析成字符串。
这个让你失望了,没有一个文档化的,确定的方法来判断,只能用测试的方法,这个方法也只是猜测,不能百分百的确定,方法如下:
用常见的编码方式对字节流进行解码,比如Unicode,UTF8, UTF8 without BOM, UTF16, ANSI等等。
对解析的结果进行判断,是不是一个合理的可打印字符,可打印字符最多的解码方式就是最可能的编码了。
如何判断可打印字符?流程如下:把解析好的字符串按照字符进行遍历,把每一个字符转化成Unicode编码,看看这些编码是不是Unicode的支持范围极客。
如果发现有种编码方式都是可打印字符,那么再使用本步骤:对字符串进行分词,分词这个在此不作赘述,你自己再研究一下。分词效果好的就是最可能的编码了。(不过通常到第三步就能搞定了,第四部绝大部分用不着)
Java获取字符的Unicode编码以及如何过滤特
java中可以使用char类提供的charAt()方法来获得字符的unicode的编码值,示例如下:
public static String getUnicode(String source){ String returnUniCode=null; String uniCodeTemp=null; for(int i=0;isource.length();i++){ uniCodeTemp = “\\u”+Integer.toHexString((int)source.charAt(i));//使用char类的charAt()的方法 returnUniCode=returnUniCode==null?uniCodeTemp:returnUniCode+uniCodeTemp; } System.out.print(source +” ‘s unicode = “+returnUniCode); return returnUniCode;//返回一个字符的unicode的编码值}
Java判断字符串是中文还是英文
Java中判断字符串的编码有两种思路:
一种是根据byte的长度判断,英文的字母数字好标点符号都是一个byte,且值在0-255之间
另一种是根据中文的Unicode取值范围判断,这个就是把所以的范围都包含,才能判断正确,参考unicode中文范围:
示例代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringTest {
//英文占1byte,非英文(可认为是中文)占2byte,根据这个特性来判断字符
public static boolean checkChar(char ch) {
if ((ch + “”).getBytes().length == 1) {
return true;//英文
} else {
return false;//中文
}
}
public static String checkString(String str) {
String res = “”;
if (str != null) {
for (int i = 0; i str.length(); i++) {
//只要字符串中有中文则为中文
if (!checkChar(str.charAt(i))) {
res = “中文”;
break;
} else {
res = “英文”;
}
}
}
return res;
}
//判断是不是中文
public static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
return true;
}
return false;
}
//判断是不是英文字母
public static boolean isEnglish(String charaString) {
return charaString.matches(“^[a-zA-Z]*”);
}
//根据中文unicode范围判断u4e00 ~ u9fa5不全
public static String isChinese(String str) {
String regEx1 = “[\\u4e00-\\u9fa5]+”;
String regEx2 = “[\\uFF00-\\uFFEF]+”;
String regEx3 = “[\\u2E80-\\u2EFF]+”;
String regEx4 = “[\\u3000-\\u303F]+”;
String regEx5 = “[\\u31C0-\\u31EF]+”;
Pattern p1 = Pattern.compile(regEx1);
Pattern p2 = Pattern.compile(regEx2);
Pattern p3 = Pattern.compile(regEx3);
Pattern p4 = Pattern.compile(regEx4);
Pattern p5 = Pattern.compile(regEx5);
Matcher m1 = p1.matcher(str);
Matcher m2 = p2.matcher(str);
Matcher m3 = p3.matcher(str);
Matcher m4 = p4.matcher(str);
Matcher m5 = p5.matcher(str);
if (m1.find() || m2.find() || m3.find() || m4.find() || m5.find())
return “中文”;
else
return “英文”;
}
public static void main(String[] args) {
System.out.println(“使用长度判断:”);
System.out.println(checkString(“Hello++”));
System.out.println(checkString(“Hello++。、,?”));
System.out.println(checkString(“Hello++编程”));
System.out.println(checkString(“编程”));
System.out.println(“\r\n使用正则表达式判断:”);
System.out.println(isChinese(“Hello++”));
System.out.println(isChinese(“Hello++。、,?”));
System.out.println(isChinese(“Hello++编程”));
System.out.println(isChinese(“编程”));
System.out.println(“\r\n使用Character.UnicodeBlock”);
System.out.println(isChinese(‘h’)?”中文”:”英文”);
System.out.println(isChinese(‘,’)?”中文”:”英文”);
System.out.println(isChinese(‘。’)?”中文”:”英文”);
System.out.println(isChinese(‘编’)?”中文”:”英文”);
}
}
java判断unicode的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于JAVA判断闰年、java判断unicode的信息别忘了在本站进行查找喔。