2016-03-02 4 views
1

Моя проблема в том, что я хочу проверить, соответствует ли мой StringASCII набор символов.Соответствует, если строка содержит только набор символов ASCII

Я попытался использовать библиотеку Guava в моем проекте андроида. Проблема в том, что эта библиотека имеет слишком большой вес (размер установленного приложения составляет 41 МБ, а с библиотека Guava становится 45 МБ).

От гуавы библиотеки мне нужно только это:

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; 
    } 
} 

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

+1

Отлично! Спасибо за Ваш ответ! – researcher

-2

От RealHowTo «s answer к In 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