web-dev-qa-db-fra.com

Séparez la chaîne sur la barre oblique

J'ai un code que je voulais diviser en fonction de la barre oblique "/".

Chaque fois que j'ai un regex split basé sur "////" il ne se divise jamais et me rend la chaîne entière. J'ai essayé de remplacer par un séparateur de fichiers qui donne "\", puis de diviser par "\\", mais pas le code ci-dessous.

Ci-dessous est le code testé

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

cheers, Saurav

23
saurav

Il n'est pas nécessaire d'échapper aux barres obliques. Votre code fonctionne bien si vous faites simplement:

String[] paths = path.split("/");
44
Keppil

je voulais vérifier la validation de la date d'entrée au format dd/mm/yyyy donc besoin de diviser ma chaîne autour de / Vous pouvez le faire simplement en:

String spl[]=str.split("/");
int date=Integer.parseInt(spl[0]);
int month=Integer.parseInt(spl[1]);
int year=Integer.parseInt(spl[2]);
4
shreshth

Java peut renvoyer un pointeur nul, vous devez donc envelopper avec un catch catch

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

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

Le compilateur est beaucoup plus heureux de cette façon.

1
IrvineCAGuy
String[] paths = path.split("\\");
0
Akky