123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- package api.common.util;
- import java.nio.charset.StandardCharsets;
- import java.util.UUID;
- public class StringUtil {
- //* -------------------------------- D --------------------------------
- /**
- * 根据换行符分割
- *
- * @param string 字符串
- * @return
- */
- public static String[] splitByLineSeparator(String string) {
- return string.split(System.lineSeparator());
- }
- public static String doubleToString(double doubleNumber, int bit) {
- return String.format("%." + bit + "f", doubleNumber);
- }
- /**
- * 复制一个字符串
- * @param charArray 字符数组
- * @return 字符串
- */
- public static String charArrayToString(char[] charArray) {
- // 字符串存放在 java 字符串常量池,具有不变性
- return String.valueOf(charArray);
- }
- /**
- * 复制一个字符串
- * @param string 字符串
- * @return 字符串
- */
- public static String copy(String string) {
- // 字符串存放在 java 字符串常量池,具有不变性
- return string;
- }
- public static String[] splitByBlank(String string) {
- return string.split("\\s+");
- }
- public static String getRandomUUID() {
- return UUID.randomUUID().toString().replace("-", "");
- }
- public static String getRandomEightBitUUID() {
- String[] chars = new String[] { "a", "b", "c", "d", "e", "f",
- "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
- "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",
- "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I",
- "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
- "W", "X", "Y", "Z" };
- StringBuilder stringBuilder = new StringBuilder();
- String uuid = UUID.randomUUID().toString().replace("-", "");
- for (int i = 0; i < 8; i++) {
- String str = uuid.substring(i * 4, i * 4 + 4);
- int x = Integer.parseInt(str, 16);
- stringBuilder.append(chars[x % 0x3E]);
- }
- return stringBuilder.toString().toLowerCase();
- }
- public static String getRandomCode() {
- return TimeUtil.getNow() + "";
- }
- public static boolean isEmpty(Object string) {
- return string == null || "".equals(string);
- }
- public static boolean isNotEmpty(Object string) {
- return !isEmpty(string);
- }
- /**
- * @param source 长字符串
- * @param target 子字符串
- * @return 包含个数
- */
- public static int countSubString(String source, String target) {
- if (isEmpty(source)|| isEmpty(target)) {
- return 0;
- }
- int count = 0;
- int index = 0;
- while ((index = source.indexOf(target, index)) != -1) {
- index = index + target.length();
- count++;
- }
- return count;
- }
- public static String replace(String string, String target, String replacement) {
- return string.replace(target, replacement);
- }
- /**
- * 从 begin 开始截取字符串
- *
- * @param string 原始字符串
- * @param begin 开始字符串
- * @return 截取后的字符串
- */
- public static String cut(String string, String begin) {
- int index = string.indexOf(begin);
- return string.substring(index);
- }
- public static String getUTF8BytesFromGBKString(String gbkStr) {
- int n = gbkStr.length();
- byte[] utfBytes = new byte[3 * n];
- int k = 0;
- for (int i = 0; i < n; i++) {
- int m = gbkStr.charAt(i);
- if (m < 128) {
- utfBytes[k++] = (byte) m;
- continue;
- }
- utfBytes[k++] = (byte) (0xe0 | (m >> 12));
- utfBytes[k++] = (byte) (0x80 | ((m >> 6) & 0x3f));
- utfBytes[k++] = (byte) (0x80 | (m & 0x3f));
- }
- if (k < utfBytes.length) {
- byte[] tmp = new byte[k];
- System.arraycopy(utfBytes, 0, tmp, 0, k);
- return new String(tmp, StandardCharsets.UTF_8);
- }
- return new String(utfBytes, StandardCharsets.UTF_8);
- }
- }
|