我想在每两个字符后分割一个字符串。
例如:
String aString= "abcdef"
我希望在分割后"ab cd ef"
我该怎么做?
谢谢:)
答案 0 :(得分:6)
如果您希望输出与具有额外空格的相同字符串,您只需使用:
String newString = aString.replaceAll("(..)", "$1 ")
答案 1 :(得分:6)
使用正则表达式:
String str= "abcdef";
String[] array=str.split("(?<=\\G.{2})");
System.out.println(java.util.Arrays.toString(array));
<强>输出:强>
[ab, cd, ef]
答案 2 :(得分:4)
这个负面的looakahead 基于正则表达式应该适合你:
String repl = "abcdef".replaceAll("..(?!$)", "$0 ");
PS:这将避免在最后一场比赛后添加空格,因此您可以获得此输出:
"ab cd ef"
而不是:
"ab cd ef "
答案 3 :(得分:1)
试试这个
String[] a = "abcdef".split("(?<=\\G..)");
System.out.println(Arrays.asList(a));
输出
[ab, cd, ef]
答案 4 :(得分:0)
你可以像这里一样轻松地做到:
String k = "sdfjsdf";
String s = "";
for (int i=0;i<k.length();i++){
s+=k.charAt(i);
if (i%2 != 0){
s+=" ";
}
}
答案 5 :(得分:0)
String s = "teststr";
StringBuilder tmp = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
tmp.append(s.charAt(i));
if (i % 2 == 1) tmp.append(" ");
}
System.out.println(tmp.toString());
答案 6 :(得分:0)
试试这个:
StringBuilder sb= new StringBuilder();
for (int i=0; i<s.length()-2;i+=2){
sb.append(s.substring(i, i+2));
if (i!=s.length()-3){
sb.append(" ");
}
}
答案 7 :(得分:0)
public static void main(String[] args) {
String st = "abcdefg";
ArrayList<String> array = new ArrayList<String>();
int i = 0;
while(i<st.length())
{
int j=i+2;
if(j>st.length())
j=st.length();
array.add(st.substring(i,j));
i=j;
}
System.out.println(array);
}
答案 8 :(得分:0)
String aString= "abcdef";
int partitionSize=2;
for (int i=0; i<aString.length(); i+=partitionSize)
{
System.out.println(aString.substring(i, Math.min(aString.length(), i + partitionSize)));
}
答案 9 :(得分:0)
试试这个
String aString= "abcdef";
String[] arr=aString.split("(?<=\\G.{2})");