();
- if (file == null || !file.isFile()) {
- return null;
- }
-
- BufferedReader reader = null;
- try {
- InputStreamReader is = new InputStreamReader(
- new FileInputStream(file), charsetName);
- reader = new BufferedReader(is);
- String line = null;
- while ((line = reader.readLine()) != null) {
- fileContent.add(line);
- }
- return fileContent;
- } catch (IOException e) {
- throw new RuntimeException("IOException occurred. ", e);
- } finally {
- IOUtils.close(reader);
- }
- }
-
-
- /**
- *
- * @param filePath 文件的路径
- * @return 返回文件的信息
- */
- public static String getFileNameWithoutExtension(String filePath) {
-
-
- if (StringUtils.isEmpty(filePath)) {
- return filePath;
- }
-
- int extenPosi = filePath.lastIndexOf(FILE_EXTENSION_SEPARATOR);
- int filePosi = filePath.lastIndexOf(File.separator);
- if (filePosi == -1) {
- return (extenPosi == -1
- ? filePath
- : filePath.substring(0, extenPosi));
- }
- if (extenPosi == -1) {
- return filePath.substring(filePosi + 1);
- }
- return (filePosi < extenPosi ? filePath.substring(filePosi + 1,
- extenPosi) : filePath.substring(filePosi + 1));
- }
-
-
- /**
- * get file name from path, include suffix
- *
- *
- * getFileName(null) = null
- * getFileName("") = ""
- * getFileName(" ") = " "
- * getFileName("a.mp3") = "a.mp3"
- * getFileName("a.b.rmvb") = "a.b.rmvb"
- * getFileName("abc") = "abc"
- * getFileName("c:\\") = ""
- * getFileName("c:\\a") = "a"
- * getFileName("c:\\a.b") = "a.b"
- * getFileName("c:a.txt\\a") = "a"
- * getFileName("/home/admin") = "admin"
- * getFileName("/home/admin/a.txt/b.mp3") = "b.mp3"
- *
- *
- * @param filePath 路径
- * @return file name from path, include suffix
- */
- public static String getFileName(String filePath) {
-
- if (StringUtils.isEmpty(filePath)) {
- return filePath;
- }
-
- int filePosi = filePath.lastIndexOf(File.separator);
- return (filePosi == -1) ? filePath : filePath.substring(filePosi + 1);
- }
-
-
- /**
- * get folder name from path
- *
- *
- * getFolderName(null) = null
- * getFolderName("") = ""
- * getFolderName(" ") = ""
- * getFolderName("a.mp3") = ""
- * getFolderName("a.b.rmvb") = ""
- * getFolderName("abc") = ""
- * getFolderName("c:\\") = "c:"
- * getFolderName("c:\\a") = "c:"
- * getFolderName("c:\\a.b") = "c:"
- * getFolderName("c:a.txt\\a") = "c:a.txt"
- * getFolderName("c:a\\b\\c\\d.txt") = "c:a\\b\\c"
- * getFolderName("/home/admin") = "/home"
- * getFolderName("/home/admin/a.txt/b.mp3") = "/home/admin/a.txt"
- *
- * @param filePath 路径
- * @return file name from path, include suffix
- */
- public static String getFolderName(String filePath) {
-
-
- if (StringUtils.isEmpty(filePath)) {
- return filePath;
- }
-
- int filePosi = filePath.lastIndexOf(File.separator);
- return (filePosi == -1) ? "" : filePath.substring(0, filePosi);
- }
-
-
- /**
- * get suffix of file from path
- *
- *
- * getFileExtension(null) = ""
- * getFileExtension("") = ""
- * getFileExtension(" ") = " "
- * getFileExtension("a.mp3") = "mp3"
- * getFileExtension("a.b.rmvb") = "rmvb"
- * getFileExtension("abc") = ""
- * getFileExtension("c:\\") = ""
- * getFileExtension("c:\\a") = ""
- * getFileExtension("c:\\a.b") = "b"
- * getFileExtension("c:a.txt\\a") = ""
- * getFileExtension("/home/admin") = ""
- * getFileExtension("/home/admin/a.txt/b") = ""
- * getFileExtension("/home/admin/a.txt/b.mp3") = "mp3"
- *
- * @param filePath 路径
- * @return 信息
- */
- public static String getFileExtension(String filePath) {
-
- if (StringUtils.isBlank(filePath)) {
- return filePath;
- }
-
- int extenPosi = filePath.lastIndexOf(FILE_EXTENSION_SEPARATOR);
- int filePosi = filePath.lastIndexOf(File.separator);
- if (extenPosi == -1) {
- return "";
- }
- return (filePosi >= extenPosi) ? "" : filePath.substring(extenPosi + 1);
- }
-
-
- /**
- *
- * @param filePath 路径
- * @return 是否创建成功
- */
- public static boolean makeDirs(String filePath) {
-
- String folderName = getFolderName(filePath);
- if (StringUtils.isEmpty(folderName)) {
- return false;
- }
-
- File folder = new File(folderName);
- return (folder.exists() && folder.isDirectory())
- ? true
- : folder.mkdirs();
- }
-
-
- /**
- *
- * @param filePath 路径
- * @return 是否创建成功
- */
- public static boolean makeFolders(String filePath) {
- return makeDirs(filePath);
-
- }
-
-
- /**
- *
- * @param filePath 路径
- * @return 是否存在这个文件
- */
- public static boolean isFileExist(String filePath) {
- if (StringUtils.isBlank(filePath)) {
- return false;
- }
-
- File file = new File(filePath);
- return (file.exists() && file.isFile());
-
- }
-
-
- /**
- *
- * @param directoryPath 路径
- * @return 是否有文件夹
- */
- public static boolean isFolderExist(String directoryPath) {
-
- if (StringUtils.isBlank(directoryPath)) {
- return false;
- }
-
- File dire = new File(directoryPath);
- return (dire.exists() && dire.isDirectory());
- }
-
-
- /**
- *
- * @param path 路径
- * @return 是否删除成功
- */
- public static boolean deleteFile(String path) {
-
- if (StringUtils.isBlank(path)) {
- return true;
- }
-
- File file = new File(path);
- if (!file.exists()) {
- return true;
- }
- if (file.isFile()) {
- return file.delete();
- }
- if (!file.isDirectory()) {
- return false;
- }
- for (File f : file.listFiles()) {
- if (f.isFile()) {
- f.delete();
- }
- else if (f.isDirectory()) {
- deleteFile(f.getAbsolutePath());
- }
- }
- return file.delete();
- }
-
-
- /**
- *
- * @param path 路径
- * @return 返回文件大小
- */
- public static long getFileSize(String path) {
-
- if (StringUtils.isBlank(path)) {
- return -1;
- }
-
- File file = new File(path);
- return (file.exists() && file.isFile() ? file.length() : -1);
- }
-
-
- /**
- * 保存多媒体数据为文件.
- *
- * @param data 多媒体数据
- * @param fileName 保存文件名
- * @return 保存成功或失败
- */
- public static boolean save2File(InputStream data, String fileName) {
- File file = new File(fileName);
- FileOutputStream fos = null;
- try {
- // 文件或目录不存在时,创建目录和文件.
- if (!file.exists()) {
- file.getParentFile().mkdirs();
- file.createNewFile();
- }
-
- // 写入数据
- fos = new FileOutputStream(file);
- byte[] b = new byte[1024];
- int len;
- while ((len = data.read(b)) > -1) {
- fos.write(b, 0, len);
- }
- fos.close();
-
- return true;
- } catch (IOException ex) {
-
- return false;
- }
- }
-
-
- /**
- * 读取文件的字节数组.
- *
- * @param file 文件
- * @return 字节数组
- */
- public static byte[] readFile4Bytes(File file) {
-
- // 如果文件不存在,返回空
- if (!file.exists()) {
- return null;
- }
- FileInputStream fis = null;
- try {
- // 读取文件内容.
- fis = new FileInputStream(file);
- byte[] arrData = new byte[(int) file.length()];
- fis.read(arrData);
- // 返回
- return arrData;
- } catch (IOException e) {
-
- return null;
- } finally {
- if (fis != null) {
- try {
- fis.close();
- } catch (IOException e) {
-
- }
- }
- }
- }
-
-
- /**
- * 读取文本文件内容,以行的形式读取
- *
- * @param filePathAndName 带有完整绝对路径的文件名
- * @return String 返回文本文件的内容
- */
- public static String readFileContent(String filePathAndName) {
- try {
- return readFileContent(filePathAndName, null, null, 1024);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
-
- /**
- * 读取文本文件内容,以行的形式读取
- *
- * @param filePathAndName 带有完整绝对路径的文件名
- * @param encoding 文本文件打开的编码方式 例如 GBK,UTF-8
- * @param sep 分隔符 例如:#,默认为\n;
- * @param bufLen 设置缓冲区大小
- * @return String 返回文本文件的内容
- */
- public static String readFileContent(String filePathAndName, String encoding, String sep, int bufLen)
- {
- if (filePathAndName == null || filePathAndName.equals("")) {
- return "";
- }
- if (sep == null || sep.equals("")) {
- sep = "\n";
- }
- if (!new File(filePathAndName).exists()) {
- return "";
- }
- StringBuffer str = new StringBuffer("");
- FileInputStream fs = null;
- InputStreamReader isr = null;
- BufferedReader br = null;
- try {
- fs = new FileInputStream(filePathAndName);
- if (encoding == null || encoding.trim().equals("")) {
- isr = new InputStreamReader(fs);
- }
- else {
- isr = new InputStreamReader(fs, encoding.trim());
- }
- br = new BufferedReader(isr, bufLen);
-
- String data = "";
- while ((data = br.readLine()) != null) {
- str.append(data).append(sep);
- }
- } catch (IOException e) {
- } finally {
- try {
- if (br != null) br.close();
- if (isr != null) isr.close();
- if (fs != null) fs.close();
- } catch (IOException e) {
- }
- }
- return str.toString();
- }
-
-
- /**
- * 把Assets里的文件拷贝到sd卡上
- *
- * @param assetManager AssetManager
- * @param fileName Asset文件名
- * @param destinationPath 完整目标路径
- * @return 拷贝成功
- */
- public static boolean copyAssetToSDCard(AssetManager assetManager, String fileName, String destinationPath) {
-
- try {
- InputStream is = assetManager.open(fileName);
- FileOutputStream os = new FileOutputStream(destinationPath);
-
- if (is != null && os != null) {
- byte[] data = new byte[1024];
- int len;
- while ((len = is.read(data)) > 0) {
- os.write(data, 0, len);
- }
-
- os.close();
- is.close();
- }
- } catch (IOException e) {
- return false;
- }
- return true;
- }
-
-
- /**
- * 调用系统方式打开文件.
- *
- * @param context 上下文
- * @param file 文件
- */
- public static void openFile(Context context, File file) {
-
- try {
- // 调用系统程序打开文件.
- Intent intent = new Intent(Intent.ACTION_VIEW);
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.setDataAndType(Uri.fromFile(file), MimeTypeMap.getSingleton()
- .getMimeTypeFromExtension(
- MimeTypeMap
- .getFileExtensionFromUrl(
- file.getPath())));
- context.startActivity(intent);
- } catch (Exception ex) {
- Toast.makeText(context, "打开失败.", Toast.LENGTH_SHORT).show();
- }
- }
-
-
- /**
- * 根据文件路径,检查文件是否不大于指定大小
- *
- * @param filepath 文件路径
- * @param maxSize 最大
- * @return 是否
- */
- public static boolean checkFileSize(String filepath, int maxSize) {
-
- File file = new File(filepath);
- if (!file.exists() || file.isDirectory()) {
- return false;
- }
- if (file.length() <= maxSize * 1024) {
- return true;
- }
- else {
- return false;
- }
- }
-
-
- /**
- *
- * @param context 上下文
- * @param file 文件对象
- */
- public static void openMedia(Context context, File file) {
-
- if (file.getName().endsWith(".png") ||
- file.getName().endsWith(".jpg") ||
- file.getName().endsWith(".jpeg")) {
- viewPhoto(context, file);
- }
- else {
- openFile(context, file);
- }
- }
-
-
- /**
- * 打开多媒体文件.
- *
- * @param context 上下文
- * @param file 多媒体文件
- */
- public static void viewPhoto(Context context, String file) {
-
- viewPhoto(context, new File(file));
- }
-
-
- /**
- * 打开照片
- * @param context 上下文
- * @param file 文件对象
- */
- public static void viewPhoto(Context context, File file) {
-
- try {
- // 调用系统程序打开文件.
- Intent intent = new Intent(Intent.ACTION_VIEW);
- // intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.setDataAndType(Uri.fromFile(file), "image/*");
- context.startActivity(intent);
- } catch (Exception ex) {
- Toast.makeText(context, "打开失败.", Toast.LENGTH_SHORT).show();
- }
- }
-
-
- /**
- * 将字符串以UTF-8编码保存到文件中
- * @param str 保存的字符串
- * @param fileName 文件的名字
- * @return 是否保存成功
- */
- public static boolean saveStrToFile(String str, String fileName) {
-
- return saveStrToFile(str, fileName, "UTF-8");
- }
-
-
- /**
- * 将字符串以charsetName编码保存到文件中
- * @param str 保存的字符串
- * @param fileName 文件的名字
- * @param charsetName 字符串编码
- * @return 是否保存成功
- */
- public static boolean saveStrToFile(String str, String fileName, String charsetName) {
-
- if (str == null || "".equals(str)) {
- return false;
- }
-
- FileOutputStream stream = null;
- try {
- File file = new File(fileName);
- if (!file.getParentFile().exists()) {
- file.getParentFile().mkdirs();
- }
-
- byte[] b = null;
- if (charsetName != null && !"".equals(charsetName)) {
- b = str.getBytes(charsetName);
- }
- else {
- b = str.getBytes();
- }
-
- stream = new FileOutputStream(file);
- stream.write(b, 0, b.length);
- stream.flush();
- return true;
- } catch (Exception e) {
- return false;
- } finally {
- if (stream != null) {
- try {
- stream.close();
- stream = null;
- } catch (Exception e) {
- }
- }
- }
- }
-
-
- /**
- * 将content://形式的uri转为实际文件路径
- * @param context 上下文
- * @param uri 地址
- * @return uri转为实际文件路径
- */
- public static String uriToPath(Context context, Uri uri) {
-
- Cursor cursor = null;
- try {
- if (uri.getScheme().equalsIgnoreCase(URI_TYPE_FILE)) {
- return uri.getPath();
- }
- cursor = context.getContentResolver()
- .query(uri, null, null, null, null);
- if (cursor.moveToFirst()) {
- return cursor.getString(cursor.getColumnIndex(
- MediaStore.Images.Media.DATA)); //图片文件路径
- }
- } catch (Exception e) {
- if (null != cursor) {
- cursor.close();
- cursor = null;
- }
- return null;
- }
- return null;
- }
-
-
- /**
- * 打开多媒体文件.
- *
- * @param context 上下文
- * @param file 多媒体文件
- */
- public static void playSound(Context context, String file) {
-
- playSound(context, new File(file));
- }
-
-
- /**
- * 打开多媒体文件.
- *
- * @param context 上下文
- * @param file 多媒体文件
- */
- public static void playSound(Context context, File file) {
-
- try {
- // 调用系统程序打开文件.
- Intent intent = new Intent(Intent.ACTION_VIEW);
- // intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- // intent.setClassName("com.android.music", "com.android.music.MediaPlaybackActivity");
- intent.setDataAndType(Uri.fromFile(file), "audio/*");
- context.startActivity(intent);
- } catch (Exception ex) {
- Toast.makeText(context, "打开失败.", Toast.LENGTH_SHORT).show();
- }
- }
-
-
- /**
- * 打开视频文件.
- *
- * @param context 上下文
- * @param file 视频文件
- */
- public static void playVideo(Context context, String file) {
-
- playVideo(context, new File(file));
- }
-
-
- /**
- * 打开视频文件.
- * @param context 上下文
- * @param file 视频文件
- */
- public static void playVideo(Context context, File file) {
- try {
- // 调用系统程序打开文件.
- Intent intent = new Intent(Intent.ACTION_VIEW);
- // intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.setDataAndType(Uri.fromFile(file), "video/*");
- context.startActivity(intent);
- } catch (Exception ex) {
- Toast.makeText(context, "打开失败.", Toast.LENGTH_SHORT).show();
- }
- }
-
-
- /**
- * 文件重命名
- *
- * @param oldPath 旧的文件名字
- * @param newPath 新的文件名字
- */
- public static void renameFile(String oldPath, String newPath) {
-
- try {
- if (!TextUtils.isEmpty(oldPath) && !TextUtils.isEmpty(newPath)
- && !oldPath.equals(newPath)) {
- File fileOld = new File(oldPath);
- File fileNew = new File(newPath);
- fileOld.renameTo(fileNew);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/navinfo/outdoor/util/IOUtils.java b/app/src/main/java/com/navinfo/outdoor/util/IOUtils.java
deleted file mode 100644
index a1f99f1..0000000
--- a/app/src/main/java/com/navinfo/outdoor/util/IOUtils.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package com.navinfo.outdoor.util;
-
-import java.io.Closeable;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-/**
- * IO utils
- *
- * @author Vladislav Bauer
- */
-
-public class IOUtils {
-
- private IOUtils() {
- throw new AssertionError();
- }
-
-
- /**
- * Close closable object and wrap {@link IOException} with {@link
- * RuntimeException}
- *
- * @param closeable closeable object
- */
- public static void close(Closeable closeable) {
- if (closeable != null) {
- try {
- closeable.close();
- } catch (IOException e) {
- throw new RuntimeException("IOException occurred. ", e);
- }
- }
- }
-
-
- /**
- * Close closable and hide possible {@link IOException}
- *
- * @param closeable closeable object
- */
- public static void closeQuietly(Closeable closeable) {
- if (closeable != null) {
- try {
- closeable.close();
- } catch (IOException e) {
- // Ignored
- }
- }
- }
-
-
- /**
- *保存文本
- * @param fileName 文件名字
- * @param content 内容
- * @param append 是否累加
- * @return 是否成功
- */
- public static boolean saveTextValue(String fileName, String content, boolean append) {
-
- try {
- File textFile = new File(fileName);
- if (!append && textFile.exists()) textFile.delete();
-
- FileOutputStream os = new FileOutputStream(textFile);
- os.write(content.getBytes("UTF-8"));
- os.close();
- } catch (Exception ee) {
- return false;
- }
-
- return true;
- }
-
-
- /**
- * 删除目录下所有文件
- * @param Path 路径
- */
- public static void deleteAllFile(String Path) {
-
- // 删除目录下所有文件
- File path = new File(Path);
- File files[] = path.listFiles();
- if (files != null) {
- for (File tfi : files) {
- if (tfi.isDirectory()) {
- System.out.println(tfi.getName());
- }
- else {
- tfi.delete();
- }
- }
- }
- }
-}
diff --git a/app/src/main/java/com/navinfo/outdoor/util/StringUtils.java b/app/src/main/java/com/navinfo/outdoor/util/StringUtils.java
deleted file mode 100644
index 3c10205..0000000
--- a/app/src/main/java/com/navinfo/outdoor/util/StringUtils.java
+++ /dev/null
@@ -1,703 +0,0 @@
-package com.navinfo.outdoor.util;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.security.MessageDigest;
-import java.util.ArrayList;
-import java.util.Locale;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * 字符串工具类,提供一些字符串相关的便捷方法
- */
-public class StringUtils {
-
- private StringUtils() {
- throw new AssertionError();
- }
-
-
- /**
- * is null or its length is 0 or it is made by space
- *
- *
- * isBlank(null) = true;
- * isBlank("") = true;
- * isBlank(" ") = true;
- * isBlank("a") = false;
- * isBlank("a ") = false;
- * isBlank(" a") = false;
- * isBlank("a b") = false;
- *
- *
- * @param str str
- * @return if string is null or its size is 0 or it is made by space, return
- * true, else return false.
- */
- public static boolean isBlank(String str) {
-
- return (str == null || str.trim().length() == 0);
- }
-
-
- /**
- * is null or its length is 0
- *
- *
- * isEmpty(null) = true;
- * isEmpty("") = true;
- * isEmpty(" ") = false;
- *
- *
- * @param str str
- * @return if string is null or its size is 0, return true, else return
- * false.
- */
- public static boolean isEmpty(CharSequence str) {
-
- return (str == null || str.length() == 0);
- }
-
-
- /**
- * get length of CharSequence
- *
- *
- * length(null) = 0;
- * length(\"\") = 0;
- * length(\"abc\") = 3;
- *
- *
- * @param str str
- * @return if str is null or empty, return 0, else return {@link
- * CharSequence#length()}.
- */
- public static int length(CharSequence str) {
-
- return str == null ? 0 : str.length();
- }
-
-
- /**
- * null Object to empty string
- *
- *
- * nullStrToEmpty(null) = "";
- * nullStrToEmpty("") = "";
- * nullStrToEmpty("aa") = "aa";
- *
- *
- * @param str str
- * @return String
- */
- public static String nullStrToEmpty(Object str) {
-
- return (str == null
- ? ""
- : (str instanceof String ? (String) str : str.toString()));
- }
-
-
- /**
- * @param str str
- * @return String
- */
- public static String capitalizeFirstLetter(String str) {
-
- if (isEmpty(str)) {
- return str;
- }
-
- char c = str.charAt(0);
- return (!Character.isLetter(c) || Character.isUpperCase(c))
- ? str
- : new StringBuilder(str.length()).append(
- Character.toUpperCase(c))
- .append(str.substring(1))
- .toString();
- }
-
-
- /**
- * encoded in utf-8
- *
- * @param str 字符串
- * @return 返回一个utf8的字符串
- */
- public static String utf8Encode(String str) {
-
- if (!isEmpty(str) && str.getBytes().length != str.length()) {
- try {
- return URLEncoder.encode(str, "UTF-8");
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(
- "UnsupportedEncodingException occurred. ", e);
- }
- }
- return str;
- }
-
-
- /**
- * @param href 字符串
- * @return 返回一个html
- */
- public static String getHrefInnerHtml(String href) {
-
- if (isEmpty(href)) {
- return "";
- }
-
- String hrefReg = ".*<[\\s]*a[\\s]*.*>(.+?)<[\\s]*/a[\\s]*>.*";
- Pattern hrefPattern = Pattern.compile(hrefReg,
- Pattern.CASE_INSENSITIVE);
- Matcher hrefMatcher = hrefPattern.matcher(href);
- if (hrefMatcher.matches()) {
- return hrefMatcher.group(1);
- }
- return href;
- }
-
-
- /**
- * @param source 字符串
- * @return 返回htmL到字符串
- */
- public static String htmlEscapeCharsToString(String source) {
-
- return StringUtils.isEmpty(source)
- ? source
- : source.replaceAll("<", "<")
- .replaceAll(">", ">")
- .replaceAll("&", "&")
- .replaceAll(""", "\"");
- }
-
-
- /**
- * @param s str
- * @return String
- */
- public static String fullWidthToHalfWidth(String s) {
-
- if (isEmpty(s)) {
- return s;
- }
-
- char[] source = s.toCharArray();
- for (int i = 0; i < source.length; i++) {
- if (source[i] == 12288) {
- source[i] = ' ';
- // } else if (source[i] == 12290) {
- // source[i] = '.';
- }
- else if (source[i] >= 65281 && source[i] <= 65374) {
- source[i] = (char) (source[i] - 65248);
- }
- else {
- source[i] = source[i];
- }
- }
- return new String(source);
- }
-
-
- /**
- * @param s 字符串
- * @return 返回的数值
- */
- public static String halfWidthToFullWidth(String s) {
-
- if (isEmpty(s)) {
- return s;
- }
-
- char[] source = s.toCharArray();
- for (int i = 0; i < source.length; i++) {
- if (source[i] == ' ') {
- source[i] = (char) 12288;
- // } else if (source[i] == '.') {
- // source[i] = (char)12290;
- }
- else if (source[i] >= 33 && source[i] <= 126) {
- source[i] = (char) (source[i] + 65248);
- }
- else {
- source[i] = source[i];
- }
- }
- return new String(source);
- }
-
-
- /**
- * @param str 资源
- * @return 特殊字符串切换
- */
-
- public static String replaceBlanktihuan(String str) {
-
- String dest = "";
- if (str != null) {
- Pattern p = Pattern.compile("\\s*|\t|\r|\n");
- Matcher m = p.matcher(str);
- dest = m.replaceAll("");
- }
- return dest;
- }
-
-
- /**
- * 判断给定的字符串是否为null或者是空的
- *
- * @param string 给定的字符串
- */
- public static boolean isEmpty(String string) {
- return string == null || "".equals(string.trim());
- }
-
-
- /**
- * 判断给定的字符串是否不为null且不为空
- *
- * @param string 给定的字符串
- */
- public static boolean isNotEmpty(String string) {
- return !isEmpty(string);
- }
-
-
- /**
- * 判断给定的字符串数组中的所有字符串是否都为null或者是空的
- *
- * @param strings 给定的字符串
- */
- public static boolean isEmpty(String... strings) {
- boolean result = true;
- for (String string : strings) {
- if (isNotEmpty(string)) {
- result = false;
- break;
- }
- }
- return result;
- }
-
-
- /**
- * 判断给定的字符串数组中是否全部都不为null且不为空
- *
- * @param strings 给定的字符串数组
- * @return 是否全部都不为null且不为空
- */
- public static boolean isNotEmpty(String... strings) {
- boolean result = true;
- for (String string : strings) {
- if (isEmpty(string)) {
- result = false;
- break;
- }
- }
- return result;
- }
-
-
- /**
- * 如果字符串是null或者空就返回""
- */
- public static String filterEmpty(String string) {
- return StringUtils.isNotEmpty(string) ? string : "";
- }
-
-
- /**
- * 在给定的字符串中,用新的字符替换所有旧的字符
- *
- * @param string 给定的字符串
- * @param oldchar 旧的字符
- * @param newchar 新的字符
- * @return 替换后的字符串
- */
- public static String replace(String string, char oldchar, char newchar) {
- char chars[] = string.toCharArray();
- for (int w = 0; w < chars.length; w++) {
- if (chars[w] == oldchar) {
- chars[w] = newchar;
- break;
- }
- }
- return new String(chars);
- }
-
-
- /**
- * 把给定的字符串用给定的字符分割
- *
- * @param string 给定的字符串
- * @param ch 给定的字符
- * @return 分割后的字符串数组
- */
- public static String[] split(String string, char ch) {
- ArrayList stringList = new ArrayList();
- char chars[] = string.toCharArray();
- int nextStart = 0;
- for (int w = 0; w < chars.length; w++) {
- if (ch == chars[w]) {
- stringList.add(new String(chars, nextStart, w - nextStart));
- nextStart = w + 1;
- if (nextStart ==
- chars.length) { //当最后一位是分割符的话,就再添加一个空的字符串到分割数组中去
- stringList.add("");
- }
- }
- }
- if (nextStart <
- chars.length) { //如果最后一位不是分隔符的话,就将最后一个分割符到最后一个字符中间的左右字符串作为一个字符串添加到分割数组中去
- stringList.add(new String(chars, nextStart,
- chars.length - 1 - nextStart + 1));
- }
- return stringList.toArray(new String[stringList.size()]);
- }
-
-
- /**
- * 计算给定的字符串的长度,计算规则是:一个汉字的长度为2,一个字符的长度为1
- *
- * @param string 给定的字符串
- * @return 长度
- */
- public static int countLength(String string) {
- int length = 0;
- char[] chars = string.toCharArray();
- for (int w = 0; w < string.length(); w++) {
- char ch = chars[w];
- if (ch >= '\u0391' && ch <= '\uFFE5') {
- length++;
- length++;
- }
- else {
- length++;
- }
- }
- return length;
- }
-
-
- private static char[] getChars(char[] chars, int startIndex) {
- int endIndex = startIndex + 1;
- //如果第一个是数字
- if (Character.isDigit(chars[startIndex])) {
- //如果下一个是数字
- while (endIndex < chars.length &&
- Character.isDigit(chars[endIndex])) {
- endIndex++;
- }
- }
- char[] resultChars = new char[endIndex - startIndex];
- System.arraycopy(chars, startIndex, resultChars, 0, resultChars.length);
- return resultChars;
- }
-
-
- /**
- * 是否全是数字
- */
- public static boolean isAllDigital(char[] chars) {
- boolean result = true;
- for (int w = 0; w < chars.length; w++) {
- if (!Character.isDigit(chars[w])) {
- result = false;
- break;
- }
- }
- return result;
- }
-
-
-
-
- /**
- * 删除给定字符串中所有的旧的字符
- *
- * @param string 源字符串
- * @param ch 要删除的字符
- * @return 删除后的字符串
- */
- public static String removeChar(String string, char ch) {
- StringBuffer sb = new StringBuffer();
- for (char cha : string.toCharArray()) {
- if (cha != '-') {
- sb.append(cha);
- }
- }
- return sb.toString();
- }
-
-
- /**
- * 删除给定字符串中给定位置处的字符
- *
- * @param string 给定字符串
- * @param index 给定位置
- */
- public static String removeChar(String string, int index) {
- String result = null;
- char[] chars = string.toCharArray();
- if (index == 0) {
- result = new String(chars, 1, chars.length - 1);
- }
- else if (index == chars.length - 1) {
- result = new String(chars, 0, chars.length - 1);
- }
- else {
- result = new String(chars, 0, index) +
- new String(chars, index + 1, chars.length - index);
- ;
- }
- return result;
- }
-
-
- /**
- * 删除给定字符串中给定位置处的字符
- *
- * @param string 给定字符串
- * @param index 给定位置
- * @param ch 如果同给定位置处的字符相同,则将给定位置处的字符删除
- */
- public static String removeChar(String string, int index, char ch) {
- String result = null;
- char[] chars = string.toCharArray();
- if (chars.length > 0 && chars[index] == ch) {
- if (index == 0) {
- result = new String(chars, 1, chars.length - 1);
- }
- else if (index == chars.length - 1) {
- result = new String(chars, 0, chars.length - 1);
- }
- else {
- result = new String(chars, 0, index) +
- new String(chars, index + 1, chars.length - index);
- ;
- }
- }
- else {
- result = string;
- }
- return result;
- }
-
-
- /**
- * 对给定的字符串进行空白过滤
- *
- * @param string 给定的字符串
- * @return 如果给定的字符串是一个空白字符串,那么返回null;否则返回本身。
- */
- public static String filterBlank(String string) {
- if ("".equals(string)) {
- return null;
- }
- else {
- return string;
- }
- }
-
-
- /**
- * 将给定字符串中给定的区域的字符转换成小写
- *
- * @param str 给定字符串中
- * @param beginIndex 开始索引(包括)
- * @param endIndex 结束索引(不包括)
- * @return 新的字符串
- */
- public static String toLowerCase(String str, int beginIndex, int endIndex) {
- return str.replaceFirst(str.substring(beginIndex, endIndex),
- str.substring(beginIndex, endIndex)
- .toLowerCase(Locale.getDefault()));
- }
-
-
- /**
- * 将给定字符串中给定的区域的字符转换成大写
- *
- * @param str 给定字符串中
- * @param beginIndex 开始索引(包括)
- * @param endIndex 结束索引(不包括)
- * @return 新的字符串
- */
- public static String toUpperCase(String str, int beginIndex, int endIndex) {
- return str.replaceFirst(str.substring(beginIndex, endIndex),
- str.substring(beginIndex, endIndex)
- .toUpperCase(Locale.getDefault()));
- }
-
-
- /**
- * 将给定字符串的首字母转为小写
- *
- * @param str 给定字符串
- * @return 新的字符串
- */
- public static String firstLetterToLowerCase(String str) {
- return toLowerCase(str, 0, 1);
- }
-
-
- /**
- * 将给定字符串的首字母转为大写
- *
- * @param str 给定字符串
- * @return 新的字符串
- */
- public static String firstLetterToUpperCase(String str) {
- return toUpperCase(str, 0, 1);
- }
-
-
- /**
- * 将给定的字符串MD5加密
- *
- * @param string 给定的字符串
- * @return MD5加密后生成的字符串
- */
- public static String MD5(String string) {
- String result = null;
- try {
- char[] charArray = string.toCharArray();
- byte[] byteArray = new byte[charArray.length];
- for (int i = 0; i < charArray.length; i++) {
- byteArray[i] = (byte) charArray[i];
- }
-
- StringBuffer hexValue = new StringBuffer();
- byte[] md5Bytes = MessageDigest.getInstance("MD5")
- .digest(byteArray);
- for (int i = 0; i < md5Bytes.length; i++) {
- int val = ((int) md5Bytes[i]) & 0xff;
- if (val < 16) {
- hexValue.append("0");
- }
- hexValue.append(Integer.toHexString(val));
- }
-
- result = hexValue.toString();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return result;
- }
-
-
- /**
- * 判断给定的字符串是否以一个特定的字符串开头,忽略大小写
- *
- * @param sourceString 给定的字符串
- * @param newString 一个特定的字符串
- */
- public static boolean startsWithIgnoreCase(String sourceString, String newString) {
- int newLength = newString.length();
- int sourceLength = sourceString.length();
- if (newLength == sourceLength) {
- return newString.equalsIgnoreCase(sourceString);
- }
- else if (newLength < sourceLength) {
- char[] newChars = new char[newLength];
- sourceString.getChars(0, newLength, newChars, 0);
- return newString.equalsIgnoreCase(String.valueOf(newChars));
- }
- else {
- return false;
- }
- }
-
-
- /**
- * 判断给定的字符串是否以一个特定的字符串结尾,忽略大小写
- *
- * @param sourceString 给定的字符串
- * @param newString 一个特定的字符串
- */
- public static boolean endsWithIgnoreCase(String sourceString, String newString) {
- int newLength = newString.length();
- int sourceLength = sourceString.length();
- if (newLength == sourceLength) {
- return newString.equalsIgnoreCase(sourceString);
- }
- else if (newLength < sourceLength) {
- char[] newChars = new char[newLength];
- sourceString.getChars(sourceLength - newLength, sourceLength,
- newChars, 0);
- return newString.equalsIgnoreCase(String.valueOf(newChars));
- }
- else {
- return false;
- }
- }
-
-
- /**
- * 检查字符串长度,如果字符串的长度超过maxLength,就截取前maxLength个字符串并在末尾拼上appendString
- */
- public static String checkLength(String string, int maxLength, String appendString) {
- if (string.length() > maxLength) {
- string = string.substring(0, maxLength);
- if (appendString != null) {
- string += appendString;
- }
- }
- return string;
- }
-
-
- /**
- * 检查字符串长度,如果字符串的长度超过maxLength,就截取前maxLength个字符串并在末尾拼上…
- */
- public static String checkLength(String string, int maxLength) {
- return checkLength(string, maxLength, "…");
- }
-
-
- /**
- * 删除Html标签
- *
- * @param inputString
- * @return
- */
- public static String htmlRemoveTag(String inputString) {
- if (inputString == null)
- return null;
- String htmlStr = inputString; // 含html标签的字符串
- String textStr = "";
- java.util.regex.Pattern p_script;
- java.util.regex.Matcher m_script;
- java.util.regex.Pattern p_style;
- java.util.regex.Matcher m_style;
- java.util.regex.Pattern p_html;
- java.util.regex.Matcher m_html;
- try {
- //定义script的正则表达式{或