我的問題是,我想檢查我的字符串匹配ASCII字符集。匹配如果字符串只包含ASCII字符集
我試圖在我的android項目中使用Guava庫。問題是,這個庫有太多的權重(安裝的應用程序大小爲41 MB,並且番石榴庫變爲45MB)。
從番石榴庫我只需要這樣:
CharMatcher.ascii().matchesAllOf();
你有我應該如何正確地檢查我的字符串任何想法,或有任何其他輕質庫?
謝謝!
我的問題是,我想檢查我的字符串匹配ASCII字符集。匹配如果字符串只包含ASCII字符集
我試圖在我的android項目中使用Guava庫。問題是,這個庫有太多的權重(安裝的應用程序大小爲41 MB,並且番石榴庫變爲45MB)。
從番石榴庫我只需要這樣:
CharMatcher.ascii().matchesAllOf();
你有我應該如何正確地檢查我的字符串任何想法,或有任何其他輕質庫?
謝謝!
的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
優秀!感謝您的回答! – researcher
你可以試試這個:
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;
}
裁判In Java, is it possible to check if a String is only ASCII?
從RealHowTo的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 */ } }
看番石榴源和複製方法和其他調用棧到本地。 https://github.com/google/guava/blob/master/guava/src/com/google/common/base/CharMatcher.java – kosa
@Nambari根據你的答案我不會有任何許可問題? – Ololoking
@Diyarbakir請在標記之前閱讀此問題。 – Seth