如果String仅包含ASCII字符集,则匹配

时间:2016-03-02 15:46:48

标签: java android string ascii guava

我的问题是我想检查字符串是否与 ASCII 字符集匹配。

我试图在我的android项目中使用Guava库。问题是这个库有太多的重量(安装的应用程序大小为41 MB, Guava 库变为45MB)。

Guava 库我只需要这个:

CharMatcher.ascii().matchesAllOf();

您有什么想法我应该如何正确检查我的字符串,还是有其他轻量级的库?

谢谢!

3 个答案:

答案 0 :(得分:2)

java代码是:

sr.Close();
csvread.Dispose();
sr.Dispose();

参考:http://www.java2s.com/Code/Java/Data-Type/ChecksifthestringcontainsonlyASCIIprintablecharacters.htm

答案 1 :(得分:-1)

你可以试试这个:

private static boolean isAllASCII(String input) {
    boolean isASCII = true;
    for (int i = 0; i < input.length(); i++) {
        int c = input.charAt(i);
        if (c > 0x7F) {
            isASCII = false;
            break;
        }
    }
    return isASCII;
}

ref In Java, is it possible to check if a String is only ASCII?

答案 2 :(得分:-2)

RealHowTo&#39; answerIn Java, is it possible to check if a String is only ASCII?

  

您可以使用java.nio.charset.Charset完成此操作。

import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;

public class StringUtils {

  static CharsetEncoder asciiEncoder = 
      Charset.forName("US-ASCII").newEncoder(); // or "ISO-8859-1" for ISO Latin 1

  public static boolean isPureAscii(String v) {
    return asciiEncoder.canEncode(v);
  }

  public static void main (String args[])
    throws Exception {

     String test = "Réal";
     System.out.println(test + " isPureAscii() : " + StringUtils.isPureAscii(test));
     test = "Real";
     System.out.println(test + " isPureAscii() : " + StringUtils.isPureAscii(test));

     /*
      * output :
      *   Réal isPureAscii() : false
      *   Real isPureAscii() : true
      */
  }
}
     

Detect non-ASCII character in a String