2014-07-14 16 views
16

Mam kod, który chciałem podzielić na podstawie ukośnika "/".Podziel ciąg na ukośnik w przód

Ilekroć mam regex split na podstawie "////", nigdy nie dzieli i daje mi cały ciąg z powrotem. Próbowałem zastąpić separatorem plików, który daje "\", a następnie dzieli się na "\\", ale nie na poniższy kod.

Poniżej znajduje się kod testowany

package org.saurav.simpletests.string; 

import java.io.File; 

public class StringManipulator { 

    public static void main(String a[]){ 
     String testString ="/UserId/XCode/deep"; 

     //testString = testString.replace("/", File.separator); 
     //testString = testString.replace("/", "_"); 
     testSplitStrings(testString); 
    } 

    /** 
    * Test the split string 
    * @param path 
    */ 
    public static void testSplitStrings(String path){ 
     System.out.println("splitting of sprint starts \n"); 
     String[] paths = path.split("////"); 
     for (int i = 0; i < paths.length; i++) { 
      System.out.println("paths::"+i+" "+paths[i]+"\n"); 
     } 
     System.out.println("splitting of sprint ends"); 
    } 
} 

okrzyki, Saurav

+0

"Mam kod, który chciałem podzielić na podstawie ukośnika odwrotnego"/"." - To ukośnik. – Axel

Odpowiedz

34

Nie ma potrzeby, aby uciec ukośniki. Twój kod działa dobrze, jeśli tylko zrobić:

String[] paths = path.split("/"); 
2
String[] paths = path.split("\\"); 
2

Java może zwrócić null pointer więc trzeba owinąć to z połowu try

try { 
     String[] temp = imageFilenameOriginal.split("/"); 

    } catch (Exception ex){ 
     errorMessage = ex.getMessage(); 
    } 

Kompilator jest o wiele szczęśliwszy ten sposób.

+3

szczęśliwsi? hehe, kompilator nie dba o to – Farside