導航:首頁 > 編程語言 > 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只能輸入漢字相關的資料

熱點內容
大數據專業哪個最好 瀏覽:467
一個文件內容替換另一個文件 瀏覽:288
ios8最好的版本 瀏覽:400
錄屏決定文件大小的是什麼 瀏覽:322
數據用不了是哪裡壞掉了 瀏覽:310
百度網盤文件傳輸格式 瀏覽:455
蘋果系統txt文件 瀏覽:629
家裝網站怎麼設計 瀏覽:202
adc指令微程序 瀏覽:487
名片模板word 瀏覽:635
怎麼把文件夾上鎖 瀏覽:331
我不會英語怎麼編程 瀏覽:895
c盤和文件大小 瀏覽:63
maya工具架怎麼調出來 瀏覽:191
文件系統壞了怎麼辦 瀏覽:261
小公司網路布線 瀏覽:515
怎麼用二維碼編程 瀏覽:341
f9b文件能用手機看嗎 瀏覽:364
手機暴風視頻文件夾 瀏覽:394
vsftpdlinux下載文件 瀏覽:948

友情鏈接