gpt4 book ai didi

java - 如何将字符串格式化为特定模式

转载 作者:行者123 更新时间:2023-12-02 06:55:18 25 4
gpt4 key购买 nike

假设我有一个输入字符串,我需要将其格式化如下:

### ### ############........etc

所以它必须有前三个字符,然后是一个空格,然后是另外三个字符,空格,然后是其余的。有没有第三方库或 JDK 类可以做到这一点?

我尝试使用正则表达式

System.out.println(inputString.replaceAll(".{3}", "$0 "));

但它不起作用,因为结果是

### ### ### ### ### etc.

最佳答案

你可以这样做:

System.out.println(inputString.replaceFirst("(.{3})(.{0,3})", "$1 $2 "));

说明:

正如$0是整个匹配的字符串一样,$1$2分别是括号中的第一个和第二个匹配的东西。

我将 {3} 修改为 {0,3},因此 6 个字符或更短的字符串也可以工作(但是,当字符串位于4 和 6 个字符,可以使用 .trim() 删除(这可能会产生不需要的其他效果)或更复杂的东西)。

希望其余部分不需要解释,因为它与您的代码非常相似,但如果您不确定,请随时询问。 Java regex reference

示例:

System.out.println("12345678901234567890".replaceFirst("(.{3})(.{0,3})", "$1 $2 "));
System.out.println("12".replaceFirst("(.{3})(.{0,3})", "$1 $2 "));
System.out.println("12345".replaceFirst("(.{3})(.{0,3})", "$1 $2 "));

打印:

123 456 78901234567890
12
123 45

关于java - 如何将字符串格式化为特定模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17452915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com