2012-02-28 4 views
0

UPDATE:Расщепление строка []

выход sould быть:

chapter: Chapter 01 
title: one 
code: 111111 

chapter: Chapter 02 
title: two 
code: 222222 

chapter: Chapter 03 
title: three 
code: 333333 

chapter: Chapter 04 
title: four 
code: 444444 

chapter: Chapter 05 
title: five 
code: 555555 

У меня есть этот код, чтобы разбить строку []. Я не уверен, в чем проблема. может кто-нибудь мне помочь?

String[] myArray = "Chapter 01<<<one<<<111111:::Chapter 02<<<two<<<222222:::Chapter 03<<<three<<<33333:::Chapter 04<<<four<<<4444:::Chapter 05<<<five<<<5555:::" 

только ради простоты я имею сделать фиктивную String[]

for (int j = 0; j < myArray.length; j++) 
{ 
String[] songs = myArray[j].split("\\<<<"); 

System.out.println("chapter: " + songs[0]); 
System.out.println("title: " + songs[1]); 
System.out.println("code: " + songs[2]); 
} 

так, что я хочу видеть в результате это:

chapter: Chapter 01 
title: one 
code: 111111 
............so on and so forth........ 
+3

Вы говорите, что вы хотите * выход, но что он на самом деле выводит? –

+0

Пожалуйста, опубликуйте свой результат. Что вы получаете. – joshua

+0

Почему вы не можете использовать StringTokenizer вместо split. он имеет три конструктора, которые помогут вам. – developer

ответ

3
public void splitString(){ 
    String[] myArray = "Chapter 01<<<one<<<111111:::Chapter 02<<<two<<<222222:::Chapter 03<<<three<<<33333:::Chapter 04<<<four<<<4444:::Chapter 05<<<five<<<5555:::".split(":::"); 
    for (int j = 0; j < myArray.length; j++) 
    { 
     String[] songs = myArray[j].split("<<<"); 

     System.out.println("chapter: " + songs[0]); 
     System.out.println("title: " + songs[1]); 
     System.out.println("code: " + songs[2]); 
    } 
} 
+0

@paislee. Я написал этот метод в eclipse, скомпилировал его и запустил. Я видел результат, и это то, что ожидалось в вопросе, И ТОЛЬКО ТОЛЬКО ПОЗВОЛИТ ЗДЕСЬ. вы должны смотреть ТЩАТЕЛЬНО. – JProgrammer

2

ли эта помощь :

public class Tmp { 

    public static void main (String[] args) { 

    String myArray = 
     "Chapter 01<<<one<<<111111:::Chapter 02<<<two<<<222222:::Chapter 03<<<three<<<33333"; 

    String[] chapters = myArray.split (":::"); 
    for (int i=0; i < chapters.length; i++) { 
     System.out.println ("chapters[" + i + "]: " + chapters[i] + "..."); 

     String[] sections = chapters[i].split ("<<<"); 
     for (int j=0; j < sections.length; j++) 
     System.out.println (" sections[" + j + "]: " + sections[j] + "..."); 
    } 
    } 

} 

java Tmp 
chapters[0]: Chapter 01<<<one<<<111111... 
    sections[0]: Chapter 01... 
    sections[1]: one... 
    sections[2]: 111111... 
chapter[s1]: Chapter 02<<<two<<<222222... 
    sections[0]: Chapter 02... 
    sections[1]: two... 
    sections[2]: 222222... 
chapters[2]: Chapter 03<<<three<<<33333... 
    sections[0]: Chapter 03... 
    sections[1]: three... 
    sections[2]: 33333... 
+0

+1 Если смотреть на выход, это похоже на решение вопроса, который не был задан правильно :) – Jayan

+0

, поэтому вы говорите, что я пропускаю '[]' в выводе? почему я не спросил правильно? – issoa

1
import java.util.StringTokenizer; 

public class Stringss { 

public static void main(String[] args){ 
    String myString = "Chapter 01<<<one<<<111111:::" + 
      "Chapter 02<<<two<<<222222:::" + 
      "Chapter 03<<<three<<<33333:::" + 
      "Chapter 04<<<four<<<4444:::" + 
      "Chapter 05<<<five<<<5555:::"; 

    StringTokenizer st = new StringTokenizer(myString,":::"); 
    String[] songs; 
    while (st.hasMoreElements()) { 
     String token = st.nextToken(); 
     songs = token.split("\\<<<"); 

     System.out.println("chapter: " + songs[0]); 
     System.out.println("title: " + songs[1]); 
     System.out.println("code: " + songs[2]); 

     } 

} 
} 
0

Необходимо отправить правильные вопросы- Просмотреть комментарии от @Nirmal et all.

Используйте несколько раз. Сначала используйте ::: в качестве маркера линии/раздела. Использование «< < <» разделитель песни. Это ответ от @Paul, просто пишущий этот ответ, чтобы прояснить эти шаги.