2016-07-22 75 views
-2

我有一个输入字符串“0102030405”我怎样才能将这个数字分成两部分,这样它的输出就是String[] ("01", "02", "03", "04", "05")如何将数字串转换为java中的int数组

+0

你能给一个例子吗? –

+0

您必须以上述字符串的子字符串乘以2的倍数。 –

+0

@limbo你可以看到'java'标签来检测语言:P – Khan

回答

2

尝试此,

String a = "0102030405"; 
System.out.println(Arrays.toString(a.split("(?<=\\G.{2})"))); 
+0

我试过这段代码是工作,如果我在eclipse中编码它给出[12,23,56]的输出,但是当我在android工作室尝试它时,它给了我[12,2345]的输出是什么这位先生的原因和补救措施是什么? –

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); 
    } 
-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为第一分割成字符数组。然后使用for循环将两个数字连接起来并放入ArrayList中以返回。如果你需要一个数组返回,你可以改变返回类型为String [],并在return语句将其更改为

outPutArray.toArray(new String[outPutArray.size()]; 

如果你插入一个字符串有奇数个字符最后一个字符将被省略。改变循环条件来解决这个问题。

+0

我想我有先生,谢谢! –

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; 
    } 
}