代码之家  ›  专栏  ›  技术社区  ›  Nitin Karande

如何在Android中每2个字符后将特殊符号连接为冒号

  •  2
  • Nitin Karande  · 技术社区  · 6 年前

    我想将特殊字符连接或附加为冒号 : 在字符串中每2个字符之后。

    例如: 原始字符串如下:

    String abc =AABBCCDDEEFF;
    

    连接或附加冒号后如下:

      String abc =AA:BB:CC:DD:EE:FF;
    

    所以我的问题是我们如何在Android中实现这一点。

    事先谢谢。

    5 回复  |  直到 6 年前
        1
  •  2
  •   Abdul Waheed    6 年前

    如果不想使用数学类函数,可以尝试下面的代码。

    StringBuilder stringBuilder = new StringBuilder();
        for (int a =0; a < abc.length(); a++) {
            stringBuilder.append(abc.charAt(a));
            if (a % 2 == 1 && a < abc.length() -1)
                stringBuilder.append(":");
        }
    

    在这里

    1. a%2==1**==>此条件语句用于追加**“:”
    2. A<abc.length()-1 ==>此条件语句用于不添加 “:”

    在最后一个条目中。希望这是有道理的。如果你发现任何问题,请告诉我。

        2
  •  3
  •   forpas    6 年前

    在Kotlin使用 chunked(2) 拆分 String 每2个字符重新加入 joinToString(":") :

    val str = "AABBCCDDEEFF"
    val newstr = str.chunked(2).joinToString(":")
    println(newstr)
    

    将打印

    AA:BB:CC:DD:EE:FF
    
        3
  •  2
  •   Andy Turner    6 年前

    使用A StringBuilder :

    StringBuilder sb = new StringBuilder(abc.length() * 3 / 2);
    String delim = "";
    for (int i = 0; i < abc.length(); i += 2) {
      sb.append(delim);
      sb.append(abc, i, Math.min(i + 2, abc.length()));
      delim = ":";
    }
    String newAbc = sb.toString();
    
        4
  •  1
  •   Milind Mevada Amir Hossein Mirzaei    6 年前

    这是科特林路。没有 StringBuilder

    val newString: String = abc.toCharArray().mapIndexed { index, c ->
                if (index % 2 == 1 && index < abc.length - 1) {
                    "$c:"
                } else {
                    c
                }
            }.joinToString("")
    
        5
  •  1
  •   Eritrean    6 年前

    你可以结合 String.split String.join ( TextUtils.join(":", someList) 对于android)首先在第二个字符处拆分字符串,然后使用所需的分隔符将其联接。例子:

    String abc = "AABBCCDDEEFF";
    String def = String.join(":", abc.split("(?<=\\G.{2})"));
    System.out.println(def);
    //AA:BB:CC:DD:EE:FF