当前位置:首页 > 编程笔记 > 正文
已解决

Java字符串处理案例(截取、拼接、转换)

来自网友在路上 153853提问 提问时间:2023-09-22 21:23:12阅读次数: 53

最佳答案 问答题库538位专家为你答疑解惑

文章目录

  • 1、截取
    • 1.1 案例按 * 拆分
  • 2、拼接
    • 2.1 采用 StringJoiner
  • 3、数字的位数对齐
  • 4、字符串日期处理
    • 4.1 格式转换,使用hutool
  • 5、判断某个字符(串)存在某个字符串中
  • 6、String[] 转 List
  • 7、日期对比
  • 8、字符串替换

1、截取

String a = “123456789ABCDFG”;

1.1 案例按 * 拆分

  • 保留第一个*之前
StringUtils.substringBefore(a,"*");
==>123

ps:Before是指取前,第一个出现的符号

  • 保留第一个*之后
StringUtils.substringAfter(a,"*");
==>*456*789*ABC*DFG

ps:After是指取后,第一个出现的符号

  • 保留最后一个*之后
StringUtils.substringAfterLast(a,"*");
==>DFG

ps:After是指取后,Last是指最后一个符号

  • 保留最后一个*之前
StringUtils.substringBeforeLast(a,"*");
==>123*456*789*ABC

ps:After是指取前,Last是指最后一个符号

2、拼接

2.1 采用 StringJoiner

  • 按照 , 拼接
String a = "hello";
String b = "world";
StringJoiner stringJoiner = new StringJoiner(",");
stringJoiner.add(a);
stringJoiner.add(b);
==>
"hello,world";
  • 按照 ,拼接,同时 前后加上括号 ()
String a = "hello";
String b = "world";
StringJoiner stringJoiner = new StringJoiner(",","(",")");
stringJoiner.add(a);
stringJoiner.add(b);
==>
"(hello,world)";
  • List 转字符串拼接,用,隔开
List<String> list = Arrays.asList("张三", "李四", "王五", "赵六");
String join = StringUtils.join(list, ",");
==>
张三,李四,王五,赵六

3、数字的位数对齐

  • 4位
String a = "2";
String b = "312";
String.format("%04d",Interger.parseInt(a));
String.format("%04d",Interger.parseInt(b));
==>
"0002";
"0312";

4、字符串日期处理

4.1 格式转换,使用hutool

时间处理用原生的方式进行处理,太过复杂,自己去实现也大可不必,建议使用hutool的工具DateUtil

2023-09-22
1、转Date -> 2023-09-22 00:00:00
2、指定格式yyyy/MM/dd

2023-09-22 23:01:12
1、转Date -> 2023-9-22

  • 当前,加一个小时、一天、一周、一个月、一年
    2023-09-22 23:01:12
  • 当前,减一个小时、一天、一周、一个月、一年
    2023-09-22 23:01:12
String dateStr = "2023-09-22";
Date parse = DateUtil.parse(dateStr);
DateUtil.format(parse,"yyyy/MM/dd");
===>
2023-09-22 00:00:00
2023/09/22String dateStr2 = "2023-09-22 08:30:01";
Date parse2 = DateUtil.parse(dateStr2);
String format2 = DateUtil.formar(parse2,"yyyy-MM-dd");
String format3 = DateUtil.formar(parse2,"yyyy-MM-dd HH:mm:ss");
===>
2023-09-22 08:30:01
2023-09-22
2023-09-22 08:30:01计算时间:
加一个小时
DateTime offset1 = DateUtil.offset(parse2,DateField.HOUR,1);
DateTime offset2 = DateUtil.offset(parse2,DateField.WEEK_OF_MONTH,1);
DateTime offset3 = DateUtil.offset(parse2,DateField.MONTH,1);
DateTime offset4 = DateUtil.offset(parse2,DateField.YEAR,1);
===>
2023-09-22 09:30:01
2023-09-29 08:30:01
2023-10-22 08:30:01
2024-09-22 08:30:01

5、判断某个字符(串)存在某个字符串中

String a = “123456789ABCDFG”;

  • 判断是否有 * 号
    a.indexOf(“*”)>-1
  • 判断是否有 456
    a.indexOf(“456”)>-1

案例:

String b = "hello world";
System.out.println(b.indexOf("word"));
System.out.println(b.contains("word"));
System.out.println(b.indexOf(world));
System.out.println(b.contains("world"));
==>
-1
false
6
truePS: contains底层也是使用 indexOf实现的

6、String[] 转 List

String a = “123456789ABCDFG”;
String[] split = a.split(“*”);
List list = Arrays.asList(split);

7、日期对比

String date1Str = “2023-09-22 08:30:00”;
String date2Str = “2023-09-22 10:30:00”;
日期对比

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = sdf.parse("2023-09-22 08:30:00");
Date date2 = sdf.parse("2023-09-22 10:30:00");
if(date1.compareTo(date2) > 0){System.out.println("date1 时间在 date2 之后");
}else if(date1.compareTo(date2) < 0){System.out.println("date1 时间在 date2 之前");
}else if(date1.compareTo(date2) == 0){System.out.println("date1 时间在 date2 相等");
}
===>
date1 时间在 date2 之前ps: 原生的写法,需要自己处理try...catch...,还是 hutool 用起来舒服

8、字符串替换

String a = “123456789456DFG”;

  • 替换:456
  • 只替换第一个/最后一个:456
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Java字符串处理案例(截取、拼接、转换)":http://eshow365.cn/6-11658-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!