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
Il n'est pas nécessaire d'échapper aux barres obliques. Votre code fonctionne bien si vous faites simplement:
String[] paths = path.split("/");
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]);
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.
String[] paths = path.split("\\");