从名称解析字符串(Parsing string from the name)

2019-10-18 06:11发布

我试图从文件名中解析特定名称。

文件名的例子是

xs_1234323_00_32

sf_12345233_99_12

fs_01923122_12_12

我用String parsedname= child.getName().substring(4.9)以获得1234323出的第一行的。 相反,我怎么格式化为上述3只输出中间数(两者_)? 使用的东西split

Answer 1:

String [] tokens = filename.split("_");
/*  xs_1234323_00_32 would be
      [0]=>xs   [1]=> 1234323   [2]=> 00  [3] => 32
*/
String middleNumber = tokens[2];


Answer 2:

一行溶液

String n = str.replaceAll("\\D+(\\d+).+", "$1");

最efficent解决方案

    int i  = str.indexOf('_');
    int j = str.indexOf('_', i + 1);
    String n = str.substring(i + 1, j);


Answer 3:

您可以尝试使用使用“_”分隔符分割。



Answer 4:

该String.split方法拆分围绕给定的匹配此字符串;参数。 因此,使用这样的

String[] output = input.split("_");

这里output[1]将是你想要的结果

和输入会像

String input = "xs_1234323_00_32"


Answer 5:

我这样做:

filename.split("_", 3)[1]

的第二个参数split指示块串应分成的最大数量,你的情况,你只需要3。这将是比使用的单参数版本更快split ,这将继续分裂的分隔符不必要的。



文章来源: Parsing string from the name
标签: java parsing