2016-07-22 8 views
-2

Ich habe eine Eingabe String von "0102030405" Wie kann ich diese Nummer durch zwei teilen, so dass es eine Ausgabe von String[] ("01", "02", "03", "04", "05") hätte.Wie konvertiert man eine Zeichenkette von Zahlen in ein int-Array in Java

+0

Können Sie ein anderes Beispiel zeigen? –

+0

Sie müssen Teilzeichenfolge der obigen Zeichenfolge durch das Vielfache von zwei übernehmen. –

+0

@limbo können Sie "Java" -Tag sehen, um die Sprache zu erkennen: P – Khan

Antwort

2

die Sie interessieren,

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

Ich habe versucht, dieser Code ist Arbeit, wenn ich es in Eclipse code es gab eine Ausgabe von [12, 23, 56] aber wenn ich es bei Android Studio versuchte gab es mir eine Ausgabe von [12, 2345] was ist der Grund für diesen Herrn und was ist das Heilmittel? –

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

Hier ist der String ist zunächst aufgeteilt in ein char-Array. Dann werden mit einer for-Schleife zwei Ziffern verkettet und in eine ArrayList zur Rückgabe gebracht. Wenn Sie ein Array zurückkehren möchten, können Sie den Rückgabetyp String ändern [] und in der return-Anweisung ändern zu

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

Wenn Sie eine Zeichenfolge hat ungerade Anzahl von Zeichen letzte Zeichen verzichtet wird einfügen. Ändern Sie die Schleifenbedingung, um das zu beheben.

+0

Ich glaube, ich habe Sir, danke! –

0

Sie könnten versuchen, etwas wie zwei Zeichen aus einer Zeichenfolge zu lesen. Dies könnte durch gelöst werden: "(?<=\\G.{2})"

Aber ich denke, eine sauberere Lösung ist folgende:

string.substring(startStringInt, endStringInt); 

Hier ist ein komplettes Beispiel:

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