andriod js判断字符串是否相等有某个字符

edittext判断输入字符长度 -
- ITeye技术网站
博客分类:
Android 中的EditText最大可输入字符数可以通过xml文件中为EditText设置maxLength属性或者在代码中为EditText设置LengthFilter来设置。
例如要设置EditText只能输入10个字符
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:id = "@+id/mEdit"
android:maxLength = "10"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:id = "@+id/mEdit"
android:maxLength = "10"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:id = "@+id/mEdit"
android:maxLength = "10"/& 代码中:
EditText mEdit = (EditText)findViewById(R.id.mEdit);
InputFilter[] filters = {new LengthFilter(10)};
mEdit.setFilters(filters);
EditText mEdit = (EditText)findViewById(R.id.mEdit);
InputFilter[] filters = {new LengthFilter(10)};
mEdit.setFilters(filters);
EditText mEdit = (EditText)findViewById(R.id.mEdit);
InputFilter[] filters = {new LengthFilter(10)};
mEdit.setFilters(filters);以上任意一种方法都可以满足需求,但这种方法只能为EditText设置统一的最大可输入字符,如果碰到根据实际情况限制不同的可输入字符数时,这种方法就不能用了。
比如SIM卡上的电话本姓名字段长度,纯英文下允许输入17个字符,而中文则只可以输入6个字符。此时可以重写InputFilter类来实现。
EditText mEdit = (EditText)findViewById(R.id.mEdit);
InputFilter[] filters = {new AdnNameLengthFilter()};
mEdit.setFilters(filters);
public static class AdnNameLengthFilter implements InputFilter
private int nM
CharSequence filter (CharSequence source, int start, int end, Spanned dest, int dstart, int dend)
Log.w("Android_12", "source("+start+","+end+")="+source+",dest("+dstart+","+dend+")="+dest);
if(isChinese(dest.toString())|| isChinese(source.toString()))
nMax = LENGTH_ZNAME;
nMax =LENGTH_ENAME;
int keep = nMax - (dest.length() - (dend - dstart));
if (keep &= 0) {
return "";
} else if (keep &= end - start) {
return null;
return source.subSequence(start, start + keep);
EditText mEdit = (EditText)findViewById(R.id.mEdit);
InputFilter[] filters = {new AdnNameLengthFilter()};
mEdit.setFilters(filters);
public static class AdnNameLengthFilter implements InputFilter
private int nM
CharSequence filter (CharSequence source, int start, int end, Spanned dest, int dstart, int dend)
Log.w("Android_12", "source("+start+","+end+")="+source+",dest("+dstart+","+dend+")="+dest);
if(isChinese(dest.toString())|| isChinese(source.toString()))
nMax = LENGTH_ZNAME;
nMax =LENGTH_ENAME;
int keep = nMax - (dest.length() - (dend - dstart));
if (keep &= 0) {
return "";
} else if (keep &= end - start) {
return null;
return source.subSequence(start, start + keep);
EditText mEdit = (EditText)findViewById(R.id.mEdit);
InputFilter[] filters = {new AdnNameLengthFilter()};
mEdit.setFilters(filters);
public static class AdnNameLengthFilter implements InputFilter
private int nM
CharSequence filter (CharSequence source, int start, int end, Spanned dest, int dstart, int dend)
Log.w("Android_12", "source("+start+","+end+")="+source+",dest("+dstart+","+dend+")="+dest);
if(isChinese(dest.toString())|| isChinese(source.toString()))
nMax = LENGTH_ZNAME;
nMax =LENGTH_ENAME;
int keep = nMax - (dest.length() - (dend - dstart));
if (keep &= 0) {
return "";
} else if (keep &= end - start) {
// keep original
return source.subSequence(start, start + keep);
其中的isChinese函数是判断是否字符串中是否包含中文字符,具体实现方法就不再赘述了。
LENGTH_ZNAME : 是中文模式下允许输入的最大字符数。
LENGTH_ENAME:是纯英文模式下允许输入的最大字符数。
android怎样判断EditText输入的值是数字还是汉字 ,并限定输入字数
判断汉字的方法private boolean isChinese(char c) {
Character.UnicodeBlock ub = 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) {
}数字就根据unicode的范围判断吧!
方法一:利用TextWatcher
editText.addTextChangedListener(new TextWatcher() {
private CharS
private boolean isEdit =
private int selectionS
private int selectionE
public void beforeTextChanged(CharSequence s, int arg1, int arg2,
int arg3) {
public void onTextChanged(CharSequence s, int arg1, int arg2,
int arg3) {
public void afterTextChanged(Editable s) {
selectionStart = editText.getSelectionStart();
selectionEnd = editText.getSelectionEnd();
Log.i("gongbiao1",""+selectionStart);
if (temp.length() & Constant.TEXT_MAX) {
Toast.makeText(KaguHomeActivity.this,
R.string.edit_content_limit, Toast.LENGTH_SHORT)
s.delete(selectionStart-1, selectionEnd);
int tempSelection = selectionS
editText.setText(s);
editText.setSelection(tempSelection);
private TextWatcher mTextWatcher = new TextWatcher(){
Toast mToast =
public void beforeTextChanged(CharSequence s, int start,
int count,int after) {
public void onTextChanged(CharSequence s, int start,
int before,int count) {
public void afterTextChanged(Editable s) {
int nSelStart = 0;
int nSelEnd = 0;
boolean nOverMaxLength =
nSelStart = mEditText.getSelectionStart();
= mEditText.getSelectionEnd();
nOverMaxLength = (s.length() & Constants.MAX_TEXT_INPUT_LENGTH) ? true :
if(nOverMaxLength){
if(null == mToast){
mToast = Toast.makeText(mContext,
R.string.IDS_MSG_TEXT_OVER_MAXLENGTH,
Toast.LENGTH_SHORT);
mToast.show();
s.delete(nSelStart - 1, nSelEnd);
mEditText.setTextKeepState(s);//请读者注意这一行,保持光标原先的位置,而 mEditText.setText(s)会让光标跑到最前面,
//就算是再加mEditText.setSelection(nSelStart) 也不起作用
方法二:利用InputFilter
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(100)});
//其中100最大输入字数
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(100)});
//其中100最大输入字数
方法三:在XML中设定
Xml代码 &EditText
:maxLength="100"
=========================================================
利用EditText可以设置filter的特性,自定义一个LengthFilter,当输入字数超过限制时 ,做出自定义的提示
// 输入框限制输入字数
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(Constant.TEXT_MAX) {
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
if (source.length() & 0 && dest.length() == Constant.TEXT_MAX) {
if ((System.currentTimeMillis() - toastTime) & interval) {
toastTime = System.currentTimeMillis();
.makeText(KaguHomeActivity.this,
R.string.edit_content_limit,
Toast.LENGTH_SHORT).show();
if (dest.toString().equals(
getResources().getString(R.string.input_default_txt))) {
Bundle data = new Bundle();
data.putCharSequence("source", source);
Message message = textHandler.obtainMessage();
message.setData(data);
message.sendToTarget();
return super.filter(source, start, end, dest, dstart, dend);
editText.setFilters(filters);private Handler textHandler = new Handler() {
public void handleMessage(Message msg) {
Bundle data = msg.getData();
CharSequence source = data.getCharSequence("source");
editText.setTextColor(Color.BLACK);
editText.setText(source);
editText.setSelection(source.length());
};=============================================================
浏览: 209533 次
来自: 北京
这个一定要顶得高高的。
Good job, Thank you so much!Android中判断字符串中必须包含字母或者数字
投稿:hebedich
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Android中判断字符串中必须包含字母或者数字的相关资料,需要的朋友可以参考下
public static boolean isLetterDigit(String str){
boolean isDigit =//定义一个boolean值,用来表示是否包含数字
boolean isLetter =//定义一个boolean值,用来表示是否包含字母
for(int i=0 ; i
if(Character.isDigit(str.charAt(i))){
//用char包装类中的判断数字的方法判断每一个字符
if(Character.isLetter(str.charAt(i))){
//用char包装类中的判断字母的方法判断每一个字符
isLetter =
String regex = "^[a-zA-Z0-9]+$";
boolean isRight = isDigit && isLetter&&str.matches(regex);
return isR
android判断EditText输入的数字、中文还是字母方法
String txt = edInput.getText().toString();
Pattern p = pile("[0-9]*");
Matcher m = p.matcher(txt);
if(m.matches() ){
Toast.makeText(Main.this,"输入的是数字", Toast.LENGTH_SHORT).show();
pile("[a-zA-Z]");
m=p.matcher(txt);
if(m.matches()){
Toast.makeText(Main.this,"输入的是字母", Toast.LENGTH_SHORT).show();
pile("[\u4e00-\u9fa5]");
m=p.matcher(txt);
if(m.matches()){
Toast.makeText(Main.this,"输入的是汉字", Toast.LENGTH_SHORT).show();
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具String str = "1234567";
if(str.indexOf("23") != -1)
System.out.println("包含该字符串");
阅读(...) 评论()温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
判断TextView中文字是否相等:TextView A,B;if (A.getText().toString.equals(B.getText().toString())) {& & //A=B;}else{& & //A!=B;}判断TextView是否为空if( "".equals(A.getText().toString())){& & //空}else{& & //非空}
阅读(17861)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'Android 判断字符串是否相等',
blogAbstract:'判断两个String是否相等不能直接用== 或!=,需要用equals()判断,若相等,则返回1判断TextView中文字是否相等:TextView A,B;if (A.getText().toString.equals(B.getText().toString())) {& & //A=B;}else{& & //A!=B;}判断TextView是否为空if( \"\".equals(A.getText().toString())){',
blogTag:'android开发,字符串相等',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:5,
publishTime:5,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}Android中判断字符是否为中文、韩文、日文 - Lefter - 推酷
Android中判断字符是否为中文、韩文、日文 - Lefter
我们经常需要在程序中判断一个字符是否为CJK(Chinese、Japanese、Korean)语言的字符。
例如,在Contacts里面程序需要判断联系人姓名的所属语言。
今天为大家介绍一种NameSplitter中使用的判断字符所属语言的方法。
以判断字符是否为中文为例。
首先,通过guessFullNameStyle函数来判断字符所属语言(使用UnicodeBlock来判断);
public static int guessFullNameStyle(String name) {
if (name == null) {
return FullNameStyle.UNDEFINED;
int nameStyle = FullNameStyle.UNDEFINED;
int length = name.length();
int offset = 0;
while (offset & length) {
int codePoint = Character.codePointAt(name, offset);
if (Character.isLetter(codePoint)) {
UnicodeBlock unicodeBlock = UnicodeBlock.of(codePoint);
if (!isLatinUnicodeBlock(unicodeBlock)) {
if (isCJKUnicodeBlock(unicodeBlock)) {
// We don't know if this is Chinese, Japanese or Korean -
// trying to figure out by looking at other characters in the name
return guessCJKNameStyle(name, offset + Character.charCount(codePoint));
if (isJapanesePhoneticUnicodeBlock(unicodeBlock)) {
return FullNameStyle.JAPANESE;
if (isKoreanUnicodeBlock(unicodeBlock)) {
return FullNameStyle.KOREAN;
nameStyle = FullNameStyle.WESTERN;
offset += Character.charCount(codePoint);
return nameS
private static int guessCJKNameStyle(String name, int offset) {
int length = name.length();
while (offset & length) {
int codePoint = Character.codePointAt(name, offset);
if (Character.isLetter(codePoint)) {
UnicodeBlock unicodeBlock = UnicodeBlock.of(codePoint);
if (isJapanesePhoneticUnicodeBlock(unicodeBlock)) {
return FullNameStyle.JAPANESE;
if (isKoreanUnicodeBlock(unicodeBlock)) {
return FullNameStyle.KOREAN;
offset += Character.charCount(codePoint);
return FullNameStyle.CJK;
其次,如果获得的结果是CJK,那么我们还要进一步判断到底是Chinese还是Japanese还是Korean
* If the supplied name style is undefined, returns a default based on the
* language, otherwise returns the supplied name style itself.
* @param nameStyle See {@link FullNameStyle}.
public static int getAdjustedFullNameStyle(int nameStyle) {
String mLanguage = Locale.getDefault().getLanguage().toLowerCase();
if (nameStyle == FullNameStyle.UNDEFINED) {
if (JAPANESE_LANGUAGE.equals(mLanguage)) {
return FullNameStyle.JAPANESE;
} else if (KOREAN_LANGUAGE.equals(mLanguage)) {
return FullNameStyle.KOREAN;
} else if (CHINESE_LANGUAGE.equals(mLanguage)) {
return FullNameStyle.CHINESE;
return FullNameStyle.WESTERN;
} else if (nameStyle == FullNameStyle.CJK) {
if (JAPANESE_LANGUAGE.equals(mLanguage)) {
return FullNameStyle.JAPANESE;
} else if (KOREAN_LANGUAGE.equals(mLanguage)) {
return FullNameStyle.KOREAN;
return FullNameStyle.CHINESE;
return nameS
恩,大致就是这样。我用Eclipse写了一个小Demo,希望能帮到大家~
附源码链接:
/share/link?shareid=&uk=
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

我要回帖

更多关于 js判断字符串是否为空 的文章

 

随机推荐