简体   繁体   中英

How can i split on a string

I have a.txt file that I browse through a bufferReader and I need to extract the last character from this String, I leave the line below

<path
  action="m"
  text-mod="true"
  mods="true"
  kind="file">branches/RO/2021Align01/CO/DGSIG-DAO/src/main/java/eu/ca/co/vo/CsoorspeWsVo.java</path>

I have the following code that takes my entire line and sets it in a list, but I just need it Cs00rspeWsVo

while ((line = bufferdReader.readLine()) != null) {
  Excel4 excel4 = new Excel4();
  if (line.contains("</path>")) {
    int index1 = line.indexOf(">");
    int index2 = line.lastIndexOf("<");
    line = line.substring(index1, index2);
    excel4.setName(line);
    listExcel4.add(excel4);
  }
}

and I only want to extract Cs00rspeWsVo from here. can anyone help me? thanks

You can use Regex groups to get it for example

public static void main(String []args){
    String input = "<path\n" +
                "  action=\"m\"\n" +
                "  text-mod=\"true\"\n" +
                "  mods=\"true\"\n" +
                "  kind=\"file\">branches/RO/2021Align01/CO/DGSIG-DAO/src/main/java/eu/ca/co/vo/CsoorspeWsVo.java</path>\n";
    Pattern pattern = Pattern.compile("kind=\"file\">.+/(.+\\..+)</path>");
    Matcher matcher = pattern.matcher(input);
    if (matcher.find()) {
        String fileName = matcher.group(1);
        System.out.println(fileName);
    }
}

Output will be -> CsoorspeWsVo.java

and if you want the fill path change the regex to

Pattern pattern = Pattern.compile("kind=\"file\">(.+)</path>");

The output will be:

branches/RO/2021Align01/CO/DGSIG-DAO/src/main/java/eu/ca/co/vo/CsoorspeWsVo.java

And you can get name and extension in two groups for example

  Pattern pattern = Pattern.compile("kind=\"file\">.+/(.+)\\.(.+)</path>");

And inside the if

String fileName = matcher.group(1);
String fileExtension = matcher.group(2);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM