任何人都可以建議我如何檢查String
是否包含全角字符Java
?全角字符是特殊字符。如何檢查字符串是否在java中有全角字符
在字符串全角字符:
abc@gmail.com
在字符串半寬字符:
[email protected]
任何人都可以建議我如何檢查String
是否包含全角字符Java
?全角字符是特殊字符。如何檢查字符串是否在java中有全角字符
在字符串全角字符:
abc@gmail.com
在字符串半寬字符:
[email protected]
你可以嘗試這樣的事情:
public static final String FULL_WIDTH_CHARS = "AaBbCcDdEeFfGgHhIiJj"
+ "KkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
public static boolean containsFullWidthChars(String str) {
for(int i = 0; i < FULL_WIDTH_CHARS.length(); i++) {
if(str.contains(String.valueOf(FULL_WIDTH_CHARS.charAt(i)))) {
return true;
}
}
return false;
}
使用正則表達式在這裏。 \ W用於檢查非單詞字符。
海峽將包含全角字符,如果下面的語句返回true:
布爾標誌= str.matches( 「\\ W」);
自檢查電子郵件。我需要檢查是否有任何特殊字符也是全寬。 – Kumar
我不知道,如果你正在尋找的任何或全部,所以這裏是函數兩種:
public static boolean isAllFullWidth(String str) {
for (char c : str.toCharArray())
if ((c & 0xff00) != 0xff00)
return false;
return true;
}
public static boolean areAnyFullWidth(String str) {
for (char c : str.toCharArray())
if ((c & 0xff00) == 0xff00)
return true;
return false;
}
至於你的一半寬度'.'
和可能'_'
。先帶他們出去了,也許替換:如果你想使用正則表達式來測試
String str="abc@gmail.com";
if (isAllFullWidth(str.replaceAll("[._]","")))
//then apart from . and _, they are all full width
或者,那麼這是全寬度的實際字符範圍:
[\uFF01-\uFF5E]
因此,該方法如下所示:
public static boolean isAllFullWidth(String str) {
return str.matches("[\\uff01-\\uff5E]*");
}
您可以添加其他字符,所以不需要去掉它們:
public static boolean isValidFullWidthEmail(String str) {
return str.matches("[\\uff01-\\uff5E._]*");
}
包含方法會告訴你。遍歷一個只包含那些「全角字符」的字符串,並且對每一個字符串運行contains方法。 – Stultuske
是的,我也是這樣檢查的。但代碼看起來很亂,但在上面的情況下,我正在檢查電子郵件。所以我必須檢查一些額外的字符,如@,。 ,_等 – Kumar
你在找**全**全寬,還是**全**全寬?即當滿和半混合時你想要什麼結果? – weston