Wie bereits erwähnt Regex ist eine Option, aber da es nicht die lesbar Standard ist, würde ich mit etwas klarer und gehen robust wie:
const char splitChar = '_';
String fileName = "20170123-100046_20170217154436_A20170217210502";
int valueIndexStart = fileName.IndexOf(splitChar);
int valueIndexEnd = fileName.LastIndexOf(splitChar);
if(valueIndexStart != -1 && valueIndexEnd != -1)
{
//increment so as to trip splitChar from result
valueIndexStart++;
valueIndexEnd = valueIndexEnd-valueIndexStart;
return fileName.Substring(valueIndexStart, valueIndexEnd);
}else{
//throw exception?
}
Natürlich müssen Sie überlegen, wie Standard dieses Format ist. Sie sagen, der mittlere Teil ist was Sie suchen, wird es immer 3 Portionen geben? Was passiert, wenn Sie mehr oder weniger Trennzeichen finden? Kann dieser Charakter jemals innerhalb eines Wertcharakters sein? Ich überlasse es Ihnen, wie Sie mit möglichen falschen positiven oder negativen Ergebnissen umgehen können.
hat es immer dieses Format? –