2017-11-17 16 views
0

分割私はこの文字列を有している、アレイに文字列再度アレイを分割

fname lname, GTA V: 120 : 00000, Minecraft : 20 : 10, Assassin’s Creed IV : 90 : 800, Payday 2 : 190 : 2001 ,Wolfenstein TNO : 25 : 80, FarCry 4 : 55 : 862 

Iはカンマでアレイにこの文字列を分割するループを使用する[、]例:

[0]fname lname 
[1]GTA V: 120 : 00000 
[2]Minecraft : 20 : 10 
[3]Assassin’s Creed IV : 90 : 800 
[4]Payday 2 : 190 : 2001 
[5]Wolfenstein TNO : 25 : 80 
[6]FarCry 4 : 55 : 862 

その後、私がこれをさらに分割するために別のループを使用したい:別の配列の例に

[0]fname lname 
[1]GTA V 
[2]120 
[3]00000 
[4]Minecraft 
[5]20 
[6]10 
.... 

がありますこれを行う良い方法は?

現在私が持っている:

List<String> lines = new ArrayList<String>(); 
    while (scan.hasNextLine()) 
    { 
     lines.add(scan.nextLine()); 
    } 

    //converts the list array to string array 

    String[] scanarray = lines.toArray(new String[0]); 

    //converts the string array into one large string 

    String str_array = Arrays.toString(scanarray); 

    String[] arraysplit; 


    arraysplit = str_array.split("\\s*:\\s*"); 

    for (int i=0; i<arraysplit.length; i++) 
    { 
     arraysplit[i] = arraysplit[i].trim(); 
     //    ^^^^^^^^^^^^ has values with spaces 
     System.out.println(scanarray[i]); 
    } 

EDIT:

は現在、私のプログラムを使用すると、上記のコードの第二のブロックで見ることができる例を含む、3つの同一の配列を作成します。

+0

どのように「より良い」と定義しますか?あなたの目標は何ですか? – hamena314

+0

私はちょうど1つのループを使用して、2つのループを使用するように指定されたものを行うことができます。 – rxbert

答えて

2

あなたは、あなたが文字列と離れ離れすべてのものが方法を分割するもの置く複数の区切り文字

public static void main(String[] args) { 
    String myOriginalString = " fname lname, GTA V: 120 : 00000, Minecraft : 20 : 10, Assassin’s Creed IV : 90 : 800, Payday 2 : 190 : 2001 ,Wolfenstein TNO : 25 : 80, FarCry 4 : 55 : 862"; 
    // | is the regex OR operator 
    String[] splited = myOriginalString.split(",|:"); 
    for(String s : splited) 
    System.out.println(s.trim()); 
} 
+0

テスト済みで動作します。ありがとうございます。 – rxbert

0

あなたはREGEXで探しているもの、それを達成することができて、Stringクラスからのsplitメソッドを使用することができます。

私はローカルで以下のコードを試しましたが、探しているものとほとんど同じです。

public class StackSol1 { 

    public static void main(String[] args) { 



     String str = "fname lname, GTA V: 120 : 00000, Minecraft : 20 : 10, Assassin’s Creed IV : 90 : 800, Payday 2 : 190 : 2001 ,Wolfenstein TNO : 25 :80, FarCry 4 : 55 : 862"; 
     String delimiters = "\\s+|,\\s*|\\:\\s*"; 

     // analyzing the string 
     String[] tokensVal = str.split(delimiters); 

     // prints the number of tokens 
     System.out.println("Count of tokens = " + tokensVal.length); 

     String finalStr=""; 

     for (String token : tokensVal) { 

      finalStr = finalStr+"\n"+token; 
     } 

     System.out.println(finalStr); 
    } 

} 
0

splitをregexで使用することはどうですか?例えば

String aa = "fname lname, GTA V: 120 : 00000, Minecraft : 20 : 10, Assassin’s Creed IV : 90 : 800, Payday 2 : 190 : 2001 ,Wolfenstein TNO : 25 : 80, FarCry 4 : 55 : 862"; 
String [] a = aa.split("[,:]");