2016-03-02 146 views
1

我的問題是,我想檢查我的字符串匹配ASCII字符集。匹配如果字符串只包含ASCII字符集

我試圖在我的android項目中使用Guava庫。問題是,這個庫有太多的權重(安裝的應用程序大小爲41 MB,並且番石榴庫變爲45MB)。

番石榴庫我只需要這樣:

CharMatcher.ascii().matchesAllOf(); 

你有我應該如何正確地檢查我的字符串任何想法,或有任何其他輕質庫?

謝謝!

+1

看番石榴源和複製方法和其他調用棧到本地。 https://github.com/google/guava/blob/master/guava/src/com/google/common/base/CharMatcher.java – kosa

+0

@Nambari根據你的答案我不會有任何許可問題? – Ololoking

+0

@Diyarbakir請在標記之前閱讀此問題。 – Seth

回答

2

的Java代碼:

public static boolean isAsciiPrintable(String str) { 
    if (str == null) { 
     return false; 
    } 
    int sz = str.length(); 
    for (int i = 0; i < sz; i++) { 
     if (isAsciiPrintable(str.charAt(i)) == false) { 
      return false; 
     } 
    } 
    return true; 
    } 
    public static boolean isAsciiPrintable(char ch) { 
    return ch >= 32 && ch < 127; 
    } 
} 

編號:http://www.java2s.com/Code/Java/Data-Type/ChecksifthestringcontainsonlyASCIIprintablecharacters.htm

+1

優秀!感謝您的回答! – researcher

-2

RealHowToanswerIn 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

相關問題