String的常用操作

160 阅读2分钟

String拼接

// 方式1:apache common long3
String fileName = StringUtils.join(new String[]{"生产员工绩效",
        LocalDateTime.now().format(DateTimeFormatter.ofPattern("YYYYMMddHHmmss")),
        randomAlphanumeric(4).toLowerCase()}, "_");
// aa,bb,cc
String join = StringUtils.join(new String[]{"aa","bb","cc"}, ",");

// 方式2: guava
Joiner.on("_").join(new String[]{"aa","bb"});  // aa_bb

// 方式1: jdk,改方法底层是StringJoiner
String.join("|", "aa", "bb"); // aa|bb
// aa,bb
StringJoiner sj = new StringJoiner(",")
                .add("aa")
                .add("bb");

对于异常的处理:

// ,bb,cc
String join = StringUtils.join(new String[]{null,"bb","cc"}, ",");
// null|bb|cc
String join1 = String.join("|", new String[]{null, "bb", "cc"});
// 抛异常 java.lang.NullPointerException
String join2 = Joiner.on("_").join(new String[]{null, "bb", "cc"});

随机数获取

Random rand = new Random();
// **生产0(包含)到999(包含)的随机数**
int shu2 = rand.nextInt(1000);
System.out.println(shu2); // 908

//生成0-1之间的double数
double random = Math.random();
System.out.println(random); // 0.9705258040472416

// 3位数值类型
String random1 = RandomStringUtils.randomNumeric(3);
// 3位字母类型
String s1 = RandomStringUtils.randomAlphabetic(3);
System.out.println(random1); // 391
System.out.println(s1); // nPa

// 4位随机数,指定字符集
String random2 = RandomStringUtils.random(4, "0123456789");
System.out.println(random2); // 5773

字符串截取和填充

StringUtils 是 apache common long3 包下的工具类

//字符串截取
String a = "abc";
// String substring = a.substring(0, 6);//不推荐,因为可能会出现越界
String left = StringUtils.left(a, 10);
System.out.println(left); // abc
String left1 = StringUtils.left(a, 2);
System.out.println(left1); // ab
//截取
String substring = StringUtils.substring("ENZ1013[040+040]", 3, 7);
System.out.println(substring);
String s = StringUtils.substringBetween("ENZ1013[040+060]", "[", "]");
System.out.println(s); // 040+060
// 填充
String s = StringUtils.leftPad(a, 10, "t");
System.out.println(s); // tttttttabc
// 转换
System.out.println(String.format("%04d",12345)); // 12345
System.out.println(String.format("%04d",12)); // 0012

判空和比较

String a = "";
String a1 = null;
String a2 = "abc";

System.out.println(StringUtils.isBlank(a)); // true
System.out.println(StringUtils.isEmpty(a)); // true
System.out.println(StringUtils.isNoneBlank(a, a1)); // false
System.out.println(StringUtils.isNoneBlank(a, a1, a2)); // false
System.out.println(StringUtils.isNoneBlank(a, a2)); // false
System.out.println(StringUtils.isNoneBlank(a2)); // true
System.out.println(StringUtils.isAllBlank(a, a1, a2)); // false
System.out.println(StringUtils.isAllBlank(a, a1)); // true

System.out.println(Objects.isNull(a)); // false
System.out.println(Objects.isNull(a1)); // true

System.out.println(Objects.equals(a1, null)); // true
System.out.println(Objects.equals(a, "")); // true
System.out.println(Objects.equals(a2, "abc")); // true

//判断起始
String a1 = "ELM";
String aa1 = "ELM1013100N-W";
boolean b = StringUtils.startsWith(aa1, a1); // true
System.out.println(b);
//判断结束
boolean b1 = StringUtils.endsWith("P", "LLM10060"); // false
System.out.println(b1);

String的format

// 0 代表前面补充0
// 8 代表长度为4
// d 代表参数为正数型
System.out.println(String.format("%08d",12345)); // 00012345