日期:2014-05-20  浏览次数:20762 次

java 区分字符串的问题
大家好现在遇到一个java字符串的问题>

String s ="com.teradyne.ds.gradex.asam3d.Asam3dHWException: 
MCDError: eSYSTEM_RESOURCE_OVERLOAD (0xe510)
 VendorCode: SlaveInterface: 09916: No selected Toolkit Device available [9916] at SG/intern/Sonstiges/Fehlerbehandlung/Parameter/startComm/NODE2 in file:/F:/Programme/Xery/_W/Stergeraete/Auau/Geway/W_204.gmf";

现在我的目标是要得到
com.teradyne.ds.gradex.asam3d.Asam3dHWException----这是一个String
MCDError: eSYSTEM_RESOURCE_OVERLOAD (0xe510)  ------这是一个string

SG/intern/Sonstiges/Fehlerbehandlung/Parameter/startComm/NODE2----这是一个string
/F:/Programme/Xery/_W/Stergeraete/Auau/Geway/W_204.gmf---这是一个String

注意没有at 
请大家帮忙,看看有没有什么好方法。



------解决方案--------------------
其实直接用字符串截取就好了,也并不算复杂,大致如下:
String s1 = s.substring(0, s.indexOf(":") - 1);
String s2 = s.substring(s.indexOf(":") + 1, s.indexOf(")"));
String s3 = s.substring(s.indexOf(" at ") + 4, s.indexOf(" in ") - 1);
String s4 = s.substring(s.indexOf("file:/") + 5);