StringUtils.java 源代码
package com.applovin.impl.sdk.utils;
import android.net.Uri;
import android.text.SpannableString;
import android.text.SpannedString;
import android.text.TextUtils;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.ForegroundColorSpan;
import android.text.style.StyleSpan;
import com.umeng.analytics.pro.bx;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class StringUtils {
private static final char[] f7810a = "0123456789abcdef".toCharArray();
static class a implements Comparator<String> {
a() {
}
@Override
public int compare(String str, String str2) {
return str.compareToIgnoreCase(str2);
}
}
private static String a(String str, Integer num) {
if (TextUtils.isEmpty(str)) {
return "";
}
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
messageDigest.update(str.getBytes("UTF-8"));
String hexString = toHexString(messageDigest.digest());
if (num.intValue() > 0) {
return hexString.substring(0, Math.min(num.intValue(), hexString.length()));
}
return hexString;
} catch (Throwable th) {
throw new RuntimeException("SHA-1 for \"" + str + "\" failed.", th);
}
}
public static String appendQueryParameter(String str, String str2, String str3) {
if (!TextUtils.isEmpty(str) && !TextUtils.isEmpty(str2)) {
Uri.Builder buildUpon = Uri.parse(str).buildUpon();
buildUpon.appendQueryParameter(str2, str3);
return buildUpon.build().toString();
}
return str;
}
public static String appendQueryParameters(String str, Map<String, String> map, boolean z6) {
if (TextUtils.isEmpty(str)) {
return str;
}
if (map != null && !map.isEmpty()) {
if (z6) {
TreeMap treeMap = new TreeMap(new a());
treeMap.putAll(map);
map = treeMap;
}
Uri.Builder buildUpon = Uri.parse(str).buildUpon();
for (Map.Entry<String, String> entry : map.entrySet()) {
buildUpon.appendQueryParameter(entry.getKey(), entry.getValue());
}
return buildUpon.build().toString();
}
return str;
}
public static boolean containsIgnoreCase(String str, String str2) {
if (isValidString(str) && isValidString(str2) && str.toLowerCase().contains(str2.toLowerCase())) {
return true;
}
return false;
}
public static SpannedString createListItemDetailSpannedString(String str, int i6) {
return createSpannedString(str, i6, 16);
}
public static SpannedString createListItemDetailSubSpannedString(String str, int i6) {
return createSpannedString(str, i6, 12, 1);
}
public static SpannedString createSpannedString(String str, int i6, int i7) {
return createSpannedString(str, i6, i7, 0);
}
public static String emptyIfNull(String str) {
if (str == null) {
return "";
}
return str;
}
public static String encodeUrlString(String str) {
if (!TextUtils.isEmpty(str)) {
try {
return URLEncoder.encode(str, "UTF-8");
} catch (UnsupportedEncodingException e6) {
throw new UnsupportedOperationException(e6);
}
}
return "";
}
public static Boolean endsWith(String str, List<String> list) {
Iterator<String> it = list.iterator();
while (it.hasNext()) {
if (str.endsWith(it.next())) {
return Boolean.TRUE;
}
}
return Boolean.FALSE;
}
public static String getHostAndPath(String str) {
Uri parse = Uri.parse(str);
return parse.getHost() + parse.getPath();
}
public static boolean isAlphaNumeric(String str) {
if (isValidString(str)) {
return str.matches("^[a-zA-Z0-9]*$");
}
return false;
}
public static boolean isNumeric(String str) {
int i6;
if (TextUtils.isEmpty(str)) {
return false;
}
char charAt = str.charAt(0);
if (charAt != '-' && charAt != '+') {
i6 = 0;
} else {
i6 = 1;
}
int length = str.length();
if (i6 == 1 && length == 1) {
return false;
}
while (i6 < length) {
if (!Character.isDigit(str.charAt(i6))) {
return false;
}
i6++;
}
return true;
}
public static boolean isValidString(String str) {
return !TextUtils.isEmpty(str);
}
public static int parseInt(String str) {
return parseInt(str, 0);
}
public static String prefixToIndex(int i6, String str) {
if (TextUtils.isEmpty(str)) {
return str;
}
if (i6 > str.length()) {
i6 = str.length();
}
return str.substring(0, i6);
}
public static String replace(String str, String str2, String str3) {
if (str3 == null) {
throw new IllegalArgumentException("No replacement target specified");
}
if (str == null || str.length() < 1 || str2 == null || str2.length() < 1) {
return str;
}
StringBuilder sb = new StringBuilder(str);
int indexOf = sb.indexOf(str2);
while (indexOf != -1) {
sb.replace(indexOf, str2.length() + indexOf, str3);
indexOf = sb.indexOf(str2, indexOf + str3.length());
}
return sb.toString();
}
public static String toFullSHA1Hash(String str) {
return a(str, -1);
}
public static String toHexString(byte[] bArr) {
if (bArr != null) {
char[] cArr = new char[bArr.length * 2];
for (int i6 = 0; i6 < bArr.length; i6++) {
int i7 = i6 * 2;
char[] cArr2 = f7810a;
byte b6 = bArr[i6];
cArr[i7] = cArr2[(b6 & 240) >>> 4];
cArr[i7 + 1] = cArr2[b6 & bx.f20591m];
}
return new String(cArr);
}
throw new IllegalArgumentException("No data specified");
}
public static String toShortSHA1Hash(String str) {
return a(str, 16);
}
public static SpannedString createSpannedString(String str, int i6, int i7, int i8) {
SpannableString spannableString = new SpannableString(str);
spannableString.setSpan(new ForegroundColorSpan(i6), 0, spannableString.length(), 33);
spannableString.setSpan(new AbsoluteSizeSpan(i7, true), 0, spannableString.length(), 33);
spannableString.setSpan(new StyleSpan(i8), 0, spannableString.length(), 33);
return new SpannedString(spannableString);
}
public static int parseInt(String str, int i6) {
return isNumeric(str) ? Integer.parseInt(str) : i6;
}
public static String replace(String str, Map<String, String> map) {
if (str != null && map != null) {
for (Map.Entry<String, String> entry : map.entrySet()) {
str = str.replace(entry.getKey(), entry.getValue());
}
}
return str;
}
}