package com.arialyy.frame.util;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 文本处理工具
*/
public class TextUtil {
private TextUtil() {
}
/**
* 格式化字符
*
* @param scr
* @param format
* @return
*/
public static String decimalFormat(Number scr, String format) {
return new DecimalFormat(format).format(scr);
}
/**
* 替换字符号(不带空格)
*
* @param str
* @return
*/
public static String replaceSymbol(String str) {
String dest = "";
if (str != null) {
// Pattern p = Pattern.compile("\\s*|\t|\r|\n");
Pattern p = Pattern.compile("\t|\r|\n");
Matcher m = p.matcher(str);
dest = m.replaceAll("");
}
return dest;
}
/**
* 首字母大写
*
* @param str
* @return
*/
public static String firstUpperCase(String str) {
if (android.text.TextUtils.isEmpty(str)) {
return null;
}
return str.replaceFirst(str.substring(0, 1), str.substring(0, 1).toUpperCase());
}
/**
* 从文本中读取数据,返回成List对象
*
* @param file
* @return
*/
public static List<String> getTextToList(File file) {
FileInputStream fileInputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
List<String> list = new ArrayList<String>();
try {
fileInputStream = new FileInputStream(file);
inputStreamReader = new InputStreamReader(fileInputStream);
bufferedReader = new BufferedReader(inputStreamReader);
String text;
while ((text = bufferedReader.readLine()) != null) {
list.add(text);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fileInputStream != null) {
fileInputStream.close();
}
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return list;
}
/**
* 从文本中读取数据,返回成List对象
*
* @param inputStream
* @return
*/
public static List<String> getTextToList(InputStream inputStream) {
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
List<String> list = new ArrayList<String>();
try {
inputStreamReader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(inputStreamReader);
String text;
while ((text = bufferedReader.readLine()) != null) {
list.add(text);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return list;
}
/**
* 判断一个数是否是整数
*
* @param numStr
* @return
*/
public static boolean isInteger(String numStr) {
try {
double parseDouble = Double.parseDouble(numStr);
return parseDouble % 1 == 0;
} catch (Exception exception) {
return false;
}
}
/**
* 判断一个数是否是大于0的数
*
* @return
*/
public static boolean isPositiveInteger(String numStr) {
if (isInteger(numStr)) {
double parseDouble = Double.parseDouble(numStr);
if (parseDouble > 0) {
return true;
}
}
return false;
}
/**
* 格式化数据
*
* @param value 需要转换的值
* @param pattern 小数位数
* @return
*/
public static String decimalFormat(double value, String pattern) {
DecimalFormat df = new DecimalFormat(pattern);
return df.format(value);
}
/**
* 格式化数据
*
* @param value 需要转换的值
* @param pattern 小数位数
* @return
*/
public static String decimalFormat(String value, String pattern) {
DecimalFormat df = new DecimalFormat(pattern);
return df.format(Double.parseDouble(value));
}
/**
* 格式化数据
*
* @param value
* @param scale
* @return
*/
public static String decimalFormat(double value, int scale) {
return decimalFormat(value, getScalePattern(scale));
}
/**
* 格式化数据
*
* @param value
* @param scale
* @return
*/
public static String decimalFormat(String value, int scale) {
return decimalFormat(value, getScalePattern(scale));
}
/**
* 返回小数位数的匹配
*
* @param scale
* @return
*/
private static String getScalePattern(int scale) {
StringBuffer sb = new StringBuffer("#0.");
if (scale <= 0) {
sb = new StringBuffer("#");
}
for (int i = 0; i < scale; ++i) {
sb.append("0");
}
return sb.toString();
}
/**
* 返回TextView的值,没有或者null返回0
*
* @param view
* @return
*/
public static String getViewText(TextView view) {
if (view == null) {
return "0";
}
boolean empty = android.text.TextUtils.isEmpty(view.getText().toString());
return empty ? "0" : view.getText().toString();
}
/**
* 替换字符串
*
* @param source
* @param index
* @param before
* @param after
* @return
*/
public static String replace(String source, int index, String before, String after) {
Matcher matcher = Pattern.compile(before).matcher(source);
for (int counter = 0; matcher.find(); counter++) {
if (counter == index) {
return source.substring(0, matcher.start()) + after + source.substring(matcher.end(), source.length());
}
}
return source;
}
public static String JsonToString(String src) {
if ("{}".equals(src) || "[]".equals(src)) {
return "";
}
return src;
}
/**
* 去掉空格和特殊字符
*
* @param str
* @return
*/
public static String trimString(String str) {
if (android.text.TextUtils.isEmpty(str)) {
return "";
} else {
return str.trim();
}
}
}