1. java 判断字符串中是否含有汉字
Java判断字符串中是否包含汉字
Java代码
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IfHanZi {
public static void main(String[] args) {
//方法一:
String s1 = "我是中国人";
String s2 = "imchinese";
String s3 = "im中国人";
System.out.println(s1 + ":" + new String(s1).length());
System.out.println(s2 + ":" + new String(s2).length());
System.out.println(s3 + ":" + new String(s3).length());
System.out.println((s1.getBytes().length == s1.length()) ? "s1无汉字":"s1有汉字");
System.out.println((s2.getBytes().length == s2.length()) ? "s2无汉字":"s2有汉字");
System.out.println((s3.getBytes().length == s3.length()) ? "s3无汉字":"s3有汉字");
//方法二:
int count = 0;
String regEx = "[\\u4e00-\\u9fa5]";
String str = "中文fd我是中国人as ";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
while (m.find()) {
for (int i = 0; i <= m.groupCount(); i++) {
count = count + 1;
}
}
System.out.println("共有 " + count + "个 ");
}
}
2. java判断字符串中是否含有汉字
@@@1@@@
intcount=0;
StringregEx="[\u4e00-\u9fa5]";
Stringstr="中文fd我是中国人as";
Patternp=Pattern.compile(regEx);
Matcherm=p.matcher(str);
while(m.find()){
for(inti=0;i<=m.groupCount();i++){
count=count+1;
}
}
System.out.println("共有"+count+"个");
}
@@@2@@@
packagecn.sunzn.demo;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassDemo{
publicstaticvoidmain(String[]args){
System.out.println(isContainChinese("中国China"));
}
(Stringstr){
Patternp=Pattern.compile("[u4e00-u9fa5]");
Matcherm=p.matcher(str);
if(m.find()){
returntrue;
}
returnfalse;
}
}
3. java判断一个长字符串中是否包含字母、数字、汉字,包含则返回true的代码
这if个里面你写的的判断多一点,每个用||连接,然后汉字和字母可以考虑用转化的数字编码来完成。给你一个参考,你要是非要当伸手党我就没话说了~
package day_4;
import java.util.Scanner;
public class Passname {
public static void main(String[] args) {
System.out.println("请输入用户名");
Scanner in=new Scanner(System.in);
String name=in.next();
if(name.length()<16&&name.length()>5&&!(Character.isDigit(name.charAt(0)))){
for(int i=0;i<name.length();i++){
if(!(Character.isLetterOrDigit(name.charAt(i)))||name.charAt(i)=='_'){
System.out.println("存在非数字非字母非'_'的字符");
break;
}
else if(i==name.length()-1){
System.out.println("用户名合法");
}
}
}
else{
System.out.println("长度不符或者首字符为数字");
}
}
}
4. JAVA正则表达式判断 只能包含汉字、英文、“_”和数字 ,正则该怎么写呢
正则表达式:[\u4e00-\u9fa5]*|\w*|\d*|_*
代码如下:
@Test
public void test1(){
//匹配正则表达式表达式
String str = "[\u4e00-\u9fa5]*|\w*|\d*|_*";
Pattern pattern = Pattern.compile(str);
//要匹配的字符串
String mStr = "还有多远_344fjdk";
System.out.println("测试的字符串:"+mStr);
Matcher m = pattern.matcher(mStr);
//如果匹配到了
if(m.find()){
System.out.println("匹配内容:"+m.group());
}
}
程序运行结果:
(4)java判断是包含中文扩展阅读
匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,"单词"字符使用Unicode字符集,中文的为:[\u4e00-\u9fa5],表示英文字母的为w,表示数字的为d,表示_的为_,而*号表示的则是0个或多个,|表示的则是或,所以把每个要匹配的用|拼接可以表示要匹配的正则表达式。
5. java里怎么判断一个字符串里有某个以汉字表达的关键字。。
java所有字符都是用Unicode编码表示,相等直接用equals比较,例如str.equalse("汉字")。包含某个汉字用str.indexOf("汉字");,返回值不是负1表示字符串str包含“汉字”两个字
6. java 判断字符串是否含有中文
Java代码
package com.zakisoft.ch;
public class IsChineseOrNot {
// GENERAL_PUNCTUATION 判断中文的“号
// CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号
// HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号
private static final 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 final boolean isChinese(String strName) {
char[] ch = strName.toCharArray();
for (int i = 0; i < ch.length; i++) {
char c = ch[i];
if (isChinese(c)) {
return true;
}
}
return false;
}
public static void main(String[] args) {
System.out.println(isChinese("き"));
System.out.println(isChinese("test,.?!%^&*(){}[]"));
System.out.println(isChinese("测试"));
System.out.println(isChinese("“测试”,。?!%……&*()——{}【】”"));
}
public static final boolean isChineseCharacter(String chineseStr) {
char[] charArray = chineseStr.toCharArray();
for (int i = 0; i < charArray.length; i++) {
if ((charArray[i] >= 0x4e00) && (charArray[i] <= 0x9fbb)) {
return true;
}
}
return false;
}
/**
* @deprecated; 弃用。和方法isChineseCharacter比效率太低。
* */
public static final boolean isChineseCharacter_f2() {
String str = "!?";
for (int i = 0; i < str.length(); i++) {
if (str.substring(i, i + 1).matches("[\\一-\\?]+")) {
return true;
}
}
return false;
}
}
System.out.println(isChinese("き"));
System.out.println(isChinese("test,.?!%^&*(){}[]"));
System.out.println(isChinese("测试"));
System.out.println(isChinese("“测试”,。?!%……&*()——{}【】”"));
运行结果为:
false
false
true
true