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

熱點內容
個人配置文件重定向到D盤 瀏覽:22
js屏幕寬度 瀏覽:312
sql查找某列重復資料庫 瀏覽:48
智行火車票用微信支付 瀏覽:262
網路定價過程哪些內容發生變化 瀏覽:200
dubbo服務提供者的配置文件 瀏覽:182
win8系統如何壓縮文件 瀏覽:875
網站怎麼上傳代碼 瀏覽:4
java日誌的好處 瀏覽:103
武漢奇米網路怎麼樣 瀏覽:689
筆記本如何恢復原來數據 瀏覽:76
charles怎麼抓取js 瀏覽:580
網路智豹破解版 瀏覽:424
pdf文件一鍵轉藍 瀏覽:563
2014yy釣魚網站源碼 瀏覽:835
華為p9應用程序在哪裡 瀏覽:106
36記app叫什麼 瀏覽:360
淘寶動圖代碼 瀏覽:272
word文檔2007怎麼另存為 瀏覽:960
有多少組數據可以寫文章 瀏覽:597

友情鏈接