首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中每隔N个字符给字符串添加分隔符?

问在Android中每隔N个字符给字符串添加分隔符?
EN

Stack Overflow用户
提问于 2019-08-01 23:22:53
回答 3查看 62关注 0票数 0

我想在3个字符后面加一个冒号。所以"123:456:789:0“我想打印出来。我该怎么做呢。它现在的输出方式:"123:4567890“

代码语言:javascript
复制
String s = "1234567890";
System.out.println(java.util.Arrays.toString(s.split("(?<=\\G.{3})")));
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-01 23:33:15

您好,尝试下面的正则表达式,

代码语言:javascript
复制
String s = "1234567890";
s = s.replaceAll("(.{3})", "$1:");
System.out.println(s);

更新:已更新答案,如果您不想在末尾插入':‘,

代码语言:javascript
复制
String s = "123456789";
s = s.replaceAll("...(?!$)", "$0:");
System.out.println(s);

"...“是长度。如果你愿意,你可以改变它。因此,如果您希望像这样将84:F3:EB:34:75:6B作为84F3EB34756B的输出,则使用,

代码语言:javascript
复制
s = s.replaceAll("..(?!$)", "$0:");
票数 1
EN

Stack Overflow用户

发布于 2019-08-01 23:33:24

这是一种粗暴的做事方法,效率可能非常低。不过,它还是会工作的

代码语言:javascript
复制
class Main {
  public static void main(String[] args) {
    String s = "123456789";
    String result="";
    for(int i=1; i < s.length()+1; i++)
    {
      result += s.charAt(i-1);
      if(i%3 == 0 && i!=s.length())
      {
        result+=":";
      }
    }
    System.out.println(result);
  }
}
票数 0
EN

Stack Overflow用户

发布于 2019-08-01 23:58:34

没有正则表达式的解决方案。

代码语言:javascript
复制
fun String.putDots(step: Int = 3, divider: String = ":"): String {
        if (isEmpty() || length <= step) {
            return this
        }

        val builder = StringBuilder()

        var startIndex = 0

        for (i in step..lastIndex step step) {
            builder.append(substring(startIndex, i))

            builder.append(divider)

            startIndex = i
        }

        builder.append(substring(startIndex, length))

        return builder.toString()
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57312301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档