找出字符串中的阿拉伯数字、找出字符串中的中文数字、去除两边 ?
import com.google.common.base.Strings;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static org.apache.commons.lang3.StringUtils.isEmpty;
public class StringUtils {
public static String getIfEmpty(String str, String defaultStr) {
if (str == null || "".equals(str)) {
return defaultStr;
}
return str;
}
public static boolean isNotNullOrEmpty(String str) {
return !Strings.isNullOrEmpty(str);
}
public static List getArabicNum(String str) {
List nums = new ArrayList<>();
if (StringUtils.isNotNullOrEmpty(str)) {
List strNums = Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", ".");
char[] chars = str.toCharArray();
String num = "";
for (char c : chars) {
String value = String.valueOf(c);
if (strNums.contains(value)) {
num += value;
} else {
num = trimBothSides(num, ".");
if (StringUtils.isNotNullOrEmpty(num)) {
nums.add(num);
num = "";
}
}
}
num = trimBothSides(num, ".");
if (StringUtils.isNotNullOrEmpty(num)) {
nums.add(num);
}
}
return nums;
}
public static List getChineseNum(String str) {
List nums = new ArrayList<>();
if (StringUtils.isNotNullOrEmpty(str)) {
List strNums = Arrays.asList("零", "一", "二", "两", "三", "四", "五", "六", "七", "八", "九", "十", "百", "千", "万", "亿");
char[] chars = str.toCharArray();
String num = "";
for (char c : chars) {
String value = String.valueOf(c);
if (strNums.contains(value)) {
num += value;
} else {
if (StringUtils.isNotNullOrEmpty(num)) {
nums.add(num);
num = "";
}
}
}
if (StringUtils.isNotNullOrEmpty(num)) {
nums.add(num);
}
}
return nums;
}
public static String trimBothSides(String str, String var) {
if (StringUtils.isNotNullOrEmpty(str) && StringUtils.isNotNullOrEmpty(var)) {
boolean b1 = true;
boolean b2 = true;
do {
if (str.length() > 0) {
String s1 = str.substring(0, 1);
if (s1.equals(var)) {
str = str.substring(1, str.length());
} else {
b1 = false;
}
}
if (str.length() > 0) {
String s1 = str.substring(str.length() - 1, str.length());
if (s1.equals(var)) {
str = str.substring(0, str.length() - 1);
} else {
b2 = false;
}
}
} while (str.length() > 0 && (b1 || b2));
}
return str;
}
public static void main(String[] args) {
System.out.println(getArabicNum("012哈哈23哈哈哈101"));
}
}



