我的输入字符串为" 0102030405"如何将此数字拆分为2,以使其输出为String[] ("01", "02", "03", "04", "05")
。
答案 0 :(得分:2)
试试这个,
String a = "0102030405";
System.out.println(Arrays.toString(a.split("(?<=\\G.{2})")));
答案 1 :(得分:2)
String input = "0102030405";
String[] output = new String[input.length()/2];
int k=0;
for(int i=0;i<input.length();i+=2){
output[k++] = input.substring(i, i+2);
}
for(String s:output){
System.out.println(s);
}
答案 2 :(得分:0)
您可以尝试从字符串中读取每两个字符。
这可以通过以下方式解决:"(?<=\\G.{2})"
但我认为更清洁的解决方案是:
string.substring(startStringInt, endStringInt);
这是一个完整的例子:
package Main;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
for (String part : splitString("0102030405", 2)) {
System.out.println(part);
}
}
private static List<String> splitString(String string, int numberOfChars) {
List<String> result = new ArrayList<String>();
for (int i = 0; i < string.length(); i += numberOfChars)
{
result.add(string.substring(i, Math.min(string.length(), i + numberOfChars)));
}
return result;
}
}
答案 3 :(得分:-1)
import java.util.ArrayList;
public class HelloWorld{
public static void main(String []args){
HelloWorld h1 = new HelloWorld();
String a = "0102030405";
System.out.println(h1.getSplitString(a));
}
private ArrayList<String> getSplitString(String stringToBeSplitted) {
char[] charArray = stringToBeSplitted.toCharArray();
int stringLength = charArray.length;
ArrayList<String> outPutArray = new ArrayList<String>();
for(int i=0; i <= stringLength-2; i+=2){
outPutArray.add("" + charArray[i] + charArray[i+1]);
}
return outPutArray;
}
}
这里首先将String拆分为char数组。然后使用for循环将两个数字连接起来并放入ArrayList中返回。如果需要返回Array,可以将返回类型更改为String [],并在return语句中将其更改为
outPutArray.toArray(new String[outPutArray.size()];
如果插入一个字符串,则奇数个字符的最后一个字符将被省略。更改循环条件以解决此问题。