我有这个字符串 8S8Q4D1SKCQC2C4S6H4C6DJS2S1C6C
我该如何将这个字符串分成每个子字符串只包含2个字符?我感到困惑,因为找不到一个分隔符来分割它们。
System.out.println(Arrays.toString(
"8S8Q4D1SKCQC2C4S6H4C6DJS2S1C6C".split("(?<=\\G.{2})")
));
public String[] customSplit(String src, int size) {
Vector<String> vec = new Vector<String>();
for(int i = 0; i < src.length(); i += size) {
vec.add(src.substring(i, (i+size > src.length()) ? src.length() : i+size);
}
return vec.toArray();
}
split
操作会显著降低速度。另一方面,如果@nybbler使用String[]
而不是Vector
,那么他的代码将更快。所以我对这个答案没有加分。 - Stephen Csrc
的长度和size
的值来计算所需的数组大小。 - Stephen Cfor (int i = 0; i < a[2].Length; i++)
{
string ss = (8S8Q4D1SKCQC2C4S6H4C6DJS2S1C6C).Substring(i, 2);
Console.Write(ss);
i++;
}
import java.util.Arrays
一起放入公共静态主函数中并运行:[8S, 8Q, 4D, 1S, KC, QC, 2C, 4S, 6H, 4C, 6D, JS, 2S, 1C, 6C]
,这正是它应该做的。 - KitsuneYMGimport java.util.Arrays;public class test {public static void main(String[] args){System.out.println(Arrays.toString("abcdefghijklmnop".split("(?<=\\G.{2})")));}}
||C:\...>javac test.java
||C:\...>java -cp . test
|| Result:[ab, cd, ef, gh, ij, kl, mn, op]
- KitsuneYMGsubstring
答案。 - ThanosFisherman