2009-09-03 7 views

Odpowiedz

5

Jeśli przez tablicy String znaczy tablicę char:

public class Test 
{ 
    public static void main(String[] args) 
    { 
     String test = "aabbab "; 
     char[] t = test.toCharArray(); 

     for(char c : t) 
      System.out.println(c);  

     System.out.println("The end!");  
    } 
} 

Jeśli nie, funkcja String.split() może przekształcić ciąg do tablicy String

zobaczyć te String.split przykłady

/* String to split. */ 
String str = "one-two-three"; 
String[] temp; 

/* delimiter */ 
String delimiter = "-"; 
/* given string will be split by the argument delimiter provided. */ 
temp = str.split(delimiter); 
/* print substrings */ 
for(int i =0; i < temp.length ; i++) 
    System.out.println(temp[i]); 

Zaprojektowany przez zaproponowany przez Joachim w his answer oparty jest na:

  • A „?!” zerowej szerokości ujemny wyprzedzającej (patrz Lookaround)
  • daszka „^” jako Anchor dopasować początek sznurka wzór regex stosowane do

dowolnej postać, która nie jest pierwsza, zostanie podzielona. Pusty łańcuch nie zostanie podzielony, ale zwróci pustą tablicę.

+1

to jest tablica znaków, a nie tablica ciągów znaków – Chii

+0

@Chii: prawda, zilustrowałem teraz oba wyniki. 'char []' i 'String []' – VonC

+0

bardzo dobra ilustracja. – Zaki

0

Można użyć String.split (regex String):

String input = "aabbab"; 
String[] parts = input.split("(?!^)"); 
+1

Ponieważ każdy znak jest separatorem, żadna z postaci nie będzie danymi, więc otrzymasz pustą tablicę. –

+0

Masz rację. Twoje regex jest lepsze. –

+0

Dzięki nie wiesz, że można go używać z podziałem, ale dlaczego jest podzielony na?! ^? bo ciąg nie ma tam? – gingergeek

21
String[] result = input.split("(?!^)"); 

Co to jest podzielony ciąg wejściowy na wszystkich pustych ciągów, które nie są poprzedzone początku łańcucha.

+0

Dzięki chłopaki działa jak magic.Cool – gingergeek

+1

Dobry regex, +1. – VonC

+0

Kiedy to zrobię. Test łańcuchowy = "To jest test"; , a następnie robię String [] test2 = test.split ("(?!^) "); Tablica zawiera tylko znaki z pierwszego słowa ...? –

2

Masz na myśli, że chcesz zrobić "aabbab" .toCharArray(); ? Który zwróci tablicę znaków. Czy rzeczywiście chcesz, aby wynikowa tablica zawierała obiekty ciągów pojedynczego znaku?

15
String x = "stackoverflow"; 
String [] y = x.split(""); 
Powiązane problemy