導航:首頁 > 編程語言 > java只能輸入漢字

java只能輸入漢字

發布時間:2024-12-26 11:11:16

⑴ 在java中怎樣規定,輸入的字元串必須是漢字

使用正則表達式,java的
String str = "試驗";
String regex = "[\u4E00-\u9FA5]";
str.regex(regex);

⑵ java限制字元串只能輸入2種結果

最近的項目上需要限制EditText輸入字元的類型,就把可以實現這個功能的方法整理了一下:

1、第一種方式是通過EditText的inputType來實現,可以通過xml或者Java文件穗燃來設置。假如我要設置為顯示密碼的形式,可以像下面這樣設置:

在xml中, Android:inputType="textPassword"

在java文件中,可以用 myEditText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);

當然,還有更多的其他屬性用來進行輸入設置。

2、第二種是通過android:digits 屬性來設置,這種方式可以指出要顯示的字元,比如我要限制只顯示數字,可以這樣:

android:digits="0123456789"

如果要顯示的內容比較多,就比較麻煩了,將要顯示的內容依次寫在裡面。

3、通過正則表達式來判斷。下面的例子只允許顯示字母、數字和漢字。

public static String stringFilter(String str)throws PatternSyntaxException{

// 只允許字母、數字和漢字

String regEx = "[^a-zA-Z0-9\u4E00-\u9FA5]";

Pattern p = Pattern.compile(regEx);

Matcher m = p.matcher(str);

return m.replaceAll("").trim();

}

然後需要在TextWatcher的onTextChanged()中調用這個函數,

@Override

public void onTextChanged(CharSequence ss, int start, int before, int count) {

String editable = editText.getText().toString();

String str = stringFilter(editable.toString());

if(!editable.equals(str)){

editText.setText(str);

//設置新的游標所在位置

editText.setSelection(str.length());

}

}

4、通過InputFilter來實現。

實現InputFilter過濾器,需要覆蓋一個叫filter的方法。

public abstract CharSequence filter (

CharSequence source, //輸入的文字

int start, //開始位置

int end, //結束位置

Spanned dest, //當前顯示的內容

int dstart, //當前開始位置

int dend //當前結束位置

);

下面的實現使得EditText只接收字元(數字、字母和漢字)和「-」仔族櫻「_」,Character.isLetterOrDigit會把中文也當做Letter。

editText.setFilters(new InputFilter[] {

new InputFilter() {

public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart,

int dend) {

for (int i = start; i < end; i++) {

if ( !Character.isLetterOrDigit(source.charAt(i)) && !Character.toString(source.charAt(i)) .equals("_") && !Character.toString(source.charAt(i)) .equals("-"))

{

return "念叢";

}

}

return null;

} });

另外使用InputFilter還能限制輸入的字元個數,如

EditText tv =newEditText(this);

int maxLength =10;

InputFilter[] fArray =new InputFilter[1];

fArray[0]=new InputFilter.LengthFilter(maxLength);

tv.setFilters(fArray);

上面的代碼可以限制輸入的字元數最大為10。

⑶ 怎麼用java寫,任意輸入一個漢字,找到在unicode表中的位置

代碼很簡單,把字元串型的漢字轉換成字元型,然後強轉為int型即可。

Scannersc=newScanner(System.in);
System.out.println("請輸入版一個字元權:");
Stringinput=sc.nextLine();
if(input==null||input.isEmpty()){
System.out.println("輸入為空");
return;
}
charc=input.charAt(0);//如果輸入了多個漢字只取第一個
System.out.println("字元'"+c+"'在unicode表中的位置為:"+(int)c);

⑷ 用JAVA語言編寫正則表達式匹配指定的漢字的方法

直接這樣寫:
\b正則表達式\b

閱讀全文

與java只能輸入漢字相關的資料

熱點內容
用手機設置無線密碼是多少 瀏覽:829
銷售季度績效考核怎麼體現數據 瀏覽:335
c盤的文件刪除不了 瀏覽:589
智力app哪個最好用 瀏覽:203
分析程序的目的 瀏覽:346
數據線插頭用多少度錫絲 瀏覽:666
怎麼用app查看社保卡余額 瀏覽:374
蘋果手機無線網路信號不好 瀏覽:383
ue4材質中文教程 瀏覽:689
打開附帶文件在圖層 瀏覽:567
mfc怎麼刪除資料庫 瀏覽:468
在哪裡下載的文件找不到 瀏覽:821
招標文件中應該證明的內容有 瀏覽:607
工件編程怎麼換平面 瀏覽:25
明珠三國官方版本 瀏覽:758
jspop換行 瀏覽:319
如何用網路畫圖 瀏覽:52
dxf編程如何修刀 瀏覽:344
js音頻控制 瀏覽:112
蘋果6p微信發送語音會自己中斷 瀏覽:644

友情鏈接