1. java正則表達式判斷字元串中不包含[]的標點符號
Strings1="[dssdfgfdg";
Strings2="]23adsa";
Strings3="23adsa";
System.out.println(s1.matches(".*[\[\]].*")==true?"包含專":"不包屬含");
System.out.println(s2.matches(".*[\[\]].*")==true?"包含":"不包含");
System.out.println(s3.matches(".*[\[\]].*")==true?"包含":"不包含");
2. java 正則表達式 以標點符號結尾 怎麼判斷
你正則有錯誤, 改為
if("a:".matches(".*:$"))就匹配了
還有, 以xx結尾可以用endWith
3. java如何判斷一個字元串中是否包含標點符號(任意標點符號,非特定)
1、在程序中需要引入hutool的jar包。
4. java判斷一個字元串是中文還是英文
參考博文:http://www.yuanxingyuan.com/?id=15
下滿給出示例代碼,希望對你有幫助
Java中判斷字元串的編碼有兩種思路:
一種是根據byte的長度判斷,英文的字母數字好標點符號都是一個byte,且值在0-255之間
另一種是根據中文的Unicode取值范圍判斷,這個就是把所以的范圍都包含,才能判斷正確,參考unicode中文范圍:http://www.yuanxingyuan.com/?id=14
示例代碼:
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassStringTest{
//英文佔1byte,非英文(可認為是中文)佔2byte,根據這個特性來判斷字元
publicstaticbooleancheckChar(charch){
if((ch+"").getBytes().length==1){
returntrue;//英文
}else{
returnfalse;//中文
}
}
publicstaticStringcheckString(Stringstr){
Stringres="";
if(str!=null){
for(inti=0;i<str.length();i++){
//只要字元串中有中文則為中文
if(!checkChar(str.charAt(i))){
res="中文";
break;
}else{
res="英文";
}
}
}
returnres;
}
//判斷是不是中文
publicstaticbooleanisChinese(charc){
Character.UnicodeBlockub=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){
returntrue;
}
returnfalse;
}
//判斷是不是英文字母
publicstaticbooleanisEnglish(StringcharaString){
returncharaString.matches("^[a-zA-Z]*");
}
//根據中文unicode范圍判斷u4e00~u9fa5不全
publicstaticStringisChinese(Stringstr){
StringregEx1="[\u4e00-\u9fa5]+";
StringregEx2="[\uFF00-\uFFEF]+";
StringregEx3="[\u2E80-\u2EFF]+";
StringregEx4="[\u3000-\u303F]+";
StringregEx5="[\u31C0-\u31EF]+";
Patternp1=Pattern.compile(regEx1);
Patternp2=Pattern.compile(regEx2);
Patternp3=Pattern.compile(regEx3);
Patternp4=Pattern.compile(regEx4);
Patternp5=Pattern.compile(regEx5);
Matcherm1=p1.matcher(str);
Matcherm2=p2.matcher(str);
Matcherm3=p3.matcher(str);
Matcherm4=p4.matcher(str);
Matcherm5=p5.matcher(str);
if(m1.find()||m2.find()||m3.find()||m4.find()||m5.find())
return"中文";
else
return"英文";
}
publicstaticvoidmain(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(" 使用正則表達式判斷:");
System.out.println(isChinese("Hello++"));
System.out.println(isChinese("Hello++。、,?"));
System.out.println(isChinese("Hello++編程"));
System.out.println(isChinese("編程"));
System.out.println(" 使用Character.UnicodeBlock");
System.out.println(isChinese('h')?"中文":"英文");
System.out.println(isChinese(',')?"中文":"英文");
System.out.println(isChinese('。')?"中文":"英文");
System.out.println(isChinese('編')?"中文":"英文");
}
}
運行結果:
使用長度判斷:
英文
中文
中文
中文
使用正則表達式判斷:
英文
中文
中文
中文
使用Character.UnicodeBlock
英文
英文
中文
中文
5. java怎麼統計字元串內的標點符號
java中標點字元包括非字母、數字的字元。\x0d\x0a用正則表達式比較簡單,思路:把所有的標點替換成",",然後分割",",統計分割的次數。\x0d\x0astr = str.replaceAll("[\\pP『』「」]", ",");\x0d\x0a\x0d\x0a\pP 其中的小寫 p 是 property 的意思,表示 Unicode 屬性,用於 Unicode 正表達式的前綴。\x0d\x0a大寫 P 表示 Unicode 字元集七個字元屬性之一:標點字元。\x0d\x0a其他六個是\x0d\x0aL:字母;\x0d\x0aM:標記符號(一般不會單獨出現);\x0d\x0aZ:分隔符(比如空格、換行等);\x0d\x0aS:符號(比如數學符號、貨幣符號等);\x0d\x0aN:數字(比如阿拉伯數字、羅馬數字等);\x0d\x0aC:其他字元\x0d\x0a\x0d\x0a代碼如下:\x0d\x0apublic class Test {\x0d\x0a public static void main(String[] args) {\x0d\x0a String str = "jioji,.;'>:{}|+_`~47897423^&*%(^1243-=kl;=-+_)j8932498";\x0d\x0a str = str.replaceAll("[\\pP『』「」]", ",");\x0d\x0a System.out.println(str.split(",").length);\x0d\x0a }\x0d\x0a}
6. java 判斷字元串中是否有中文符號
學習交流:
622497727
Java判斷一個字元串是否有中文是利用Unicode編碼來判斷,因為中文的編碼區間為:0x4e00--0x9fbb,不過通用區間來判斷中文也不非常精確,因為有些中文的標點符號利用區間判斷會得到錯誤的結果。而且利用區間判斷中文效率也並不高,例如;str.substring(i, i + 1).matches("[\\u4e00-\\u9fbb]+"),就需要遍歷整個字元串,如果字元串太長效率非常低,而且判斷標點還會錯誤
7. java怎麼統計字元串內的標點符號
在java中可以使用正則表達式來方便地統計一個字元串中出現的標點符號的個數,思路是:
1、先記錄統計前的字元串長度
2、使用正則表達式把需要統計的標點符號清除掉
3、使用第1步里保存的長度-第2步獲得的字元串的長度,即可得到標點符號的的個數
importjava.util.*;
importjava.lang.*;
importjava.io.*;
/*Nameoftheclasshastobe"Main"onlyiftheclassispublic.*/
classIdeone
{
publicstaticvoidmain(String[]args)throwsjava.lang.Exception
{
Stringstr="這是;一段;測試文本,用來測試能不能去除掉標點符號。本例子只統計逗號句號和分號。";
intistr=str.length();
System.out.println("str的長度是:"+istr);
Stringstr1=str.replaceAll("[,。;]","");
intistr1=str1.length();
System.out.println("str1的長度是:"+istr1);
System.out.println("標點符號的個數是:"+(istr-istr1));
}
}
執行結果:
str的長度是:41
str1的長度是:36
標點符號的個數是:5
8. JAVA 判斷字母,數字,空格,標點符號的方法。 (沒有分了,請大家幫幫忙~謝謝~)
你是先輸入一個字元串么
例如:String str="asd ¥121ad";
然後判斷它里邊有什麼?
可以用String類里的charAt(index)方法
你寫個for循環,用charAt檢索字元串
char a=charAt(index);index為字元串下標
再用Character.isDigit(a);檢索是不是數字
同理,在character下還有其他方法,你打出character一點就出來了
9. Java 判定標點符號
String str = "本站提!!,供的程序?均為網上搜集,如果該程序涉\"及或侵'害到" +
"您的,,版權請立即寫信通知我們。";
str = str.replaceAll("[\\pP]", "-"); //正則表達式
String[] arr = str.split("-");
str = "";
for(int i=0; i<arr.length; i++){
String temp = arr[i];
if("".equals(temp)) continue;
if(i==0){
str += temp.substring(temp.length()-1,temp.length());
}else{
str += temp.substring(0,1)+temp.substring(temp.length()-1,temp.length());
}
}
System.out.println(str);
\pP 其中的小寫 p 是 property 的意思,表示 Unicode 屬性,用於 Unicode 正表達式的前綴。
大寫 P 表示 Unicode 字元集七個字元屬性之一:標點字元。
其他六個是
L:字母;
M:標記符號(一般不會單獨出現);
Z:分隔符(比如空格、換行等);
S:符號(比如數學符號、貨幣符號等);
N:數字(比如阿拉伯數字、羅馬數字等);
C:其他字元
希望對你有幫助