因为想确认字符串里只包括英文字数字及符号,作用是區別出不是英文字数字及符号的其他語言及全角字符,請教該怎麼做?
自己想了一個用正則表達式似乎可以達到:
[0-9a-zA-Z!@#$%^&*()_+-=<>?,./:\"'|{}\\[\\]]*
想知道還有其他方法嗎?利用API?

解决方案 »

  1.   

    粗放式检查的话:字符串中每个字符(或byte也行)的值,<127 就差不多了;如果还要排除某些控制字符,比如:回车、换行、退格之类的,可以再加上 >=32 的要求。即取值范围是:[32, 127)
      

  2.   

    哦,对了,你要用正则,那么应该可以:
      str.matches("[\\x32-\\x7E]*");
      

  3.   


    又打错字了  
      str.matches("[\\x20-\\x7E]*");
      

  4.   

    把他转换成2进制流,判断每个数字的值,Ascii中大写字母的值65-90,小写字母97-122,数字48-57,