StringUtil.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package api.common.util;
  2. import java.nio.charset.StandardCharsets;
  3. import java.util.UUID;
  4. public class StringUtil {
  5. //* -------------------------------- D --------------------------------
  6. /**
  7. * 根据换行符分割
  8. *
  9. * @param string 字符串
  10. * @return
  11. */
  12. public static String[] splitByLineSeparator(String string) {
  13. return string.split(System.lineSeparator());
  14. }
  15. public static String doubleToString(double doubleNumber, int bit) {
  16. return String.format("%." + bit + "f", doubleNumber);
  17. }
  18. /**
  19. * 复制一个字符串
  20. * @param charArray 字符数组
  21. * @return 字符串
  22. */
  23. public static String charArrayToString(char[] charArray) {
  24. // 字符串存放在 java 字符串常量池,具有不变性
  25. return String.valueOf(charArray);
  26. }
  27. /**
  28. * 复制一个字符串
  29. * @param string 字符串
  30. * @return 字符串
  31. */
  32. public static String copy(String string) {
  33. // 字符串存放在 java 字符串常量池,具有不变性
  34. return string;
  35. }
  36. public static String[] splitByBlank(String string) {
  37. return string.split("\\s+");
  38. }
  39. public static String getRandomUUID() {
  40. return UUID.randomUUID().toString().replace("-", "");
  41. }
  42. public static String getRandomEightBitUUID() {
  43. String[] chars = new String[] { "a", "b", "c", "d", "e", "f",
  44. "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
  45. "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",
  46. "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I",
  47. "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
  48. "W", "X", "Y", "Z" };
  49. StringBuilder stringBuilder = new StringBuilder();
  50. String uuid = UUID.randomUUID().toString().replace("-", "");
  51. for (int i = 0; i < 8; i++) {
  52. String str = uuid.substring(i * 4, i * 4 + 4);
  53. int x = Integer.parseInt(str, 16);
  54. stringBuilder.append(chars[x % 0x3E]);
  55. }
  56. return stringBuilder.toString().toLowerCase();
  57. }
  58. public static String getRandomCode() {
  59. return TimeUtil.getNow() + "";
  60. }
  61. public static boolean isEmpty(Object string) {
  62. return string == null || "".equals(string);
  63. }
  64. public static boolean isNotEmpty(Object string) {
  65. return !isEmpty(string);
  66. }
  67. /**
  68. * @param source 长字符串
  69. * @param target 子字符串
  70. * @return 包含个数
  71. */
  72. public static int countSubString(String source, String target) {
  73. if (isEmpty(source)|| isEmpty(target)) {
  74. return 0;
  75. }
  76. int count = 0;
  77. int index = 0;
  78. while ((index = source.indexOf(target, index)) != -1) {
  79. index = index + target.length();
  80. count++;
  81. }
  82. return count;
  83. }
  84. public static String replace(String string, String target, String replacement) {
  85. return string.replace(target, replacement);
  86. }
  87. /**
  88. * 从 begin 开始截取字符串
  89. *
  90. * @param string 原始字符串
  91. * @param begin 开始字符串
  92. * @return 截取后的字符串
  93. */
  94. public static String cut(String string, String begin) {
  95. int index = string.indexOf(begin);
  96. return string.substring(index);
  97. }
  98. public static String getUTF8BytesFromGBKString(String gbkStr) {
  99. int n = gbkStr.length();
  100. byte[] utfBytes = new byte[3 * n];
  101. int k = 0;
  102. for (int i = 0; i < n; i++) {
  103. int m = gbkStr.charAt(i);
  104. if (m < 128) {
  105. utfBytes[k++] = (byte) m;
  106. continue;
  107. }
  108. utfBytes[k++] = (byte) (0xe0 | (m >> 12));
  109. utfBytes[k++] = (byte) (0x80 | ((m >> 6) & 0x3f));
  110. utfBytes[k++] = (byte) (0x80 | (m & 0x3f));
  111. }
  112. if (k < utfBytes.length) {
  113. byte[] tmp = new byte[k];
  114. System.arraycopy(utfBytes, 0, tmp, 0, k);
  115. return new String(tmp, StandardCharsets.UTF_8);
  116. }
  117. return new String(utfBytes, StandardCharsets.UTF_8);
  118. }
  119. }