❶ 判斷java String中是否有漢字的方法
如果str.getBytes().length==str.length() 就沒有漢字,否則備孫毀就有,因為一個漢字兩個位元組,不是漢字就一個位元組,而String的length()方法返回的是字數,跟非漢字位元組數相等,不過漢字仿備的符號也凱蘆算漢字,比如"?"就是漢字 但是"?"就不是漢字
❷ Java判斷是不是漢字,中文,英文字母和數字
JAVA的正則表達式,這個很簡單,只要你將匹配的方法和幾個常用的元字元以及表示字元數的格式記住就可以了,這些你可以網路一下,我這里只是簡單的說一下
JAVA的正則表達式使用String里的boolean matches(String regex)方法來確認傳入的值的格式的,
publicstaticvoidmain(String[]args)
{
Strings1="java";
Strings2="Java";
booleanflag=s2.matches(s1);
System.out.println(flag);//如果匹配則輸出true,否則為false
}
接下來我介紹一些簡單的元字元
\d表示0-9中間的任意一個數字
\D 表示任意一個非數字字元
\w表示字母、數字或下劃線
\W表示非字母、數字和下劃線
\s表示空白符
\S表示非空白符
[]字元集具體范圍的規定,使用[]
例如
s1="b\d{3,5}";//表示b後跟3個以上,5個以下的任意數字
s2="b588";
flag=str.matches(s1);
System.out.println(flag);
那麼判斷是不是漢字
s1="[u4e00-u9fa5]";//中文字元范圍
s2="吳老二";
flag=s2.matches(s1);
System.out.println(flag);
英文字母
s1="^[a-zA-Z]$";//^表示開頭$表示結尾[a-zA-Z]表示英文字母
s2="abc";
數字
除了可以用我前面說的\d之外還可以用[0-9],你自己測試一下吧
❸ java判斷字元串中是否有中文
把要判來斷的字元串放入List裡面,然源後遍歷list集合,如果還有指定的字元就輸出,如下代碼:
packagecom.qiu.lin.he;
importjava.util.ArrayList;
importjava.util.List;
publicclassCeshi{
publicstaticvoidmain(String[]args){
List<String>list=newArrayList<String>();//新建一個集合
list.add("puton");
list.add("inonputin");
list.add("oneputonininputoutoutput");
for(Strings:list){
if(s.indexOf("puton")!=-1){//如果含有連續的字元puton則輸出yes
System.out.println(s+"----yes");
}else{
System.out.println(s+"----no");
}
}
}
}
運行結果如下:
❹ java判斷是否為漢字 和 是否有漢字
1、打開eclipse或任意可以編譯並運行的IDE程序,准備我們的練習:我創建好工程名和包名,並命名這個功能類為:StringTrunc。
❺ 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 + "個 ");
}
}
❻ java怎麼識別一個字元串中有漢字
可以使用正則表達式+中文字元編碼區間驗證一個字元串中是否包含漢字
代碼如下:
public static void main(String[] args) {
int count = 0;
String regEx = "[\\u4e00-\\u9fa5]";
//System.out.println(regEx);
String str = "中文fdas ";
//System.out.println(str);
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 + "個 ");
}
❼ java 判斷字元是否為漢字
public static void main(String[] args) {
Pattern p_str = Pattern.compile("[\\u4e00-\\u9fa5]+");
String str="我是漢字";
Matcher m = p_str.matcher(str);
if(m.find()&&m.group(0).equals(str)){
System.out.println("Ok");
}
} 這個就可以判斷,輸入任意個字元,必須所有的都是中文,才算是
❽ Java判斷字元串中是否有中文
publicstaticbooleanisChinese(charc){
returnc>=0x4E00&&c<=0x9FA5;//根據位元組碼判斷
}
//判斷一個字元串是否含有中文
publicstaticbooleanisChinese(Stringstr){
if(str==null)returnfalse;
for(charc:str.toCharArray()){
if(isChinese(c))returntrue;//有一個中文字元就返回
}
returnfalse;
}
用字元串編碼來判斷,
❾ 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