How to parse this string in Java?

前端 未结 10 1338
感情败类
感情败类 2020-11-29 05:19

prefix/dir1/dir2/dir3/dir4/..

How to parse the dir1, dir2 values out of the above string in Java?

The prefix here c

相关标签:
10条回答
  • 2020-11-29 05:53

    Using String.split method will surely work as told in other answers here.

    Also, StringTokenizer class can be used to to parse the String using / as the delimiter.

    import java.util.StringTokenizer;
    public class Test
    {
        public static void main(String []args)
        {
            String s = "prefix/dir1/dir2/dir3/dir4/..";
            StringTokenizer tokenizer = new StringTokenizer(s, "/");
            String dir1 = tokenizer.nextToken();
            String dir2 = tokenizer.nextToken();
            System.out.println("Dir 1  : "+dir1);
            System.out.println("Dir 2 : " + dir2);
        }
    }
    

    Gives the output as :

    Dir 1  : prefix
    Dir 2 : dir1
    

    Here you can find more about StringTokenizer.

    0 讨论(0)
  • 2020-11-29 05:55

    String.split(String regex) is convenient but if you don't need the regular expression handling then go with the substring(..) example, java.util.StringTokenizer or use Apache commons lang 1. The performance difference when not using regular expressions can be a gain of 1 to 2 orders of magnitude in speed.

    0 讨论(0)
  • 2020-11-29 05:57

    In this case, why not use new File("prefix/dir1/dir2/dir3/dir4") and go from there?

    0 讨论(0)
  • 2020-11-29 06:09
    String str = "/usr/local/apache/resumes/dir1/dir2";
    String prefix = "/usr/local/apache/resumes/";
    
    if( str.startsWith(prefix) ) {
      str = str.substring(0, prefix.length);
      String parts[] = str.split("/");
      // dir1=parts[0];
      // dir2=parts[1];
    } else {
      // It doesn't start with your prefix
    }
    
    0 讨论(0)
提交回复
热议问题