-4

有人可以帮我完成这项任务吗,感谢您抽出宝贵的时间。

有大量文件名(文件名字符串),我必须从下面的示例文件名中获取每个文件名的 ID。

1100_007_1_ALL_GC_Identify_TOA.txt
1100_007_2_ALL_GC_Identify_TOA.txt
1100_008A_1_ALL_GC_Set_Individual_In-Active.txt
1100_008B_2_ALL_GC_Set_Individual_In-Active_TP.txt
1100_001_TOA_Indiv.txt
1100_002_TOA_Indiv.txt
1100_006_ALL_GC_Check_In_Active_TOA.txt
1100_010_TOA_Control_1.txt

Final output should be :-
File ID's:
1100_007_1
1100_007_2
1100_008A_1
1100_008B_1
1100_001
1100_002
1100_006
1100_010 

我尝试了以下方法,但它不适用于文件 1100_008A_1

public static String stripNonDigits(final String input){
   final StringBuilder sb = new StringBuilder();
   for(int i = 0; i < input.length(); i++){
      final char c = input.charAt(i);
      if(c > 47 && c < 58){
         sb.append(c);
      }
   }
   return sb.toString();
}   
4

1 回答 1

0

对于您给出的示例,这将起作用:

String filename = "1100_007_1_ALL_GC_Identify_TOA.txt";
String id = filename.replaceAll("_\\D.*", "");

下面的正则表达式假定在 'ID' 部分之后有一个 '_' 符号,后跟一个数字以外的字符。

于 2013-03-06T18:16:47.877 回答