как обрезать символы в пути, извлеченном из XML?

#java #xml

#java #xml

Вопрос:

 //abc:def/m1/m/123/test
  

Я извлекаю путь из XML-файла.
Я хочу обрезать символы "/test" (удалить эти символы из path). пробовал с lastIndexOf(".") and trim(). невозможностью обрезать символы.

Комментарии:

1. сообщите нам результат, который вы ожидаете?

2. я ожидаю вывода // abc:def/m1 / m/ 123

Ответ №1:

если вы хотите _remove /text , вы можете попробовать

 String path="//abc:def/m1/m/123/test";
path = path.substring(0,path.lastIndexOf("/"));
System.out.println(path);
  

Вывод:

 //abc:def/m1/m/123
  

Комментарии:

1. simpleXpath=arrSimpleXpath.get(i).toString(); simpleXpath=simpleXpath.substring(0, simpleXpath.lastIndexOf(«/»)); я пытался получить путь из xml через simpleXpath, но не работает…

2. @user3769879 вы уверены, что значение simpleXpath равно //abc:def/m1/m/123/test ?

3. какое значение вы получили после substring ? это все то же самое?

4. да, это все то же самое, это не удаление / проверка после substring и lastindexof

5. вы действительно уверены //abc:def/m1/m/123/test , что это не //abc:def/m1/m/123/test/ так? если да, то вы можете попробовать решение @ TAsk ниже.

Ответ №2:

Вы можете использовать substring и indexOf , поскольку вы конкретно хотите удалить String из /test

 String str="//abc:def/m1/m/123/test";
System.out.println(str.substring(0, str.indexOf("/test")));
  

ПРИМЕЧАНИЕ

Если у вас есть String что-то подобное //abc:def/m1/m/123/test/other/extra , оно также будет удалено String после /test . Итак, если вы хотите удалить последний элемент пути, я предлагаю вам пойти lastIndexOf('/') .

(Как Immer Allein уже предлагалось)


Если вы хотите удалить /test , вы также можете сделать это так, если у вас есть больше элементов в пути после /test . (т.е. //abc:def/m1/m/123/test/other/extra )

 StringBuilder sb=new StringBuilder();
sb.append(str.substring(0, str.indexOf("/test")));
sb.append(str.substring(str.indexOf("/test") 5));
System.out.println(sb);
  

ВЫВОД

 //abc:def/m1/m/123/other/extra
  

Ответ №3:

попробуйте это,

    String s = new String("//abc:def/m1/m/123/test" );
 System.out.println("" s.substring(0,s.lastIndexOf("/")));