我试图了解更多string operations
和regexes
。例如,这是一个给定的数组String
:
String [] tab = {"__09_23_HELLO","__89_2_WORLD","900_23_TRY","_34_90_SATELLITE",
"___23_", "390"};
我在这里要做的是仅在下划线后跟一个字母后保留数据,如果找不到,请返回null
。在这个例子中,我会得到这个:
HELLO WORLD TRY SATELLITE null null
所以我写了这个递归函数:
public String getName(String string, int i)
{
if(i == string.length()-1) return null;
if(string.charAt(i) != '_' ||
(string.charAt(i) == '_' && !Character.isLetter(string.charAt(i+1))))
return getName(string, i+1);
else
return string.substring(i+1);
}
而且效果很好。但是由于我不知道很多正则表达式(也许还有其他方法?),我想知道我是否可以使用正则表达式来做到这一点,以及它是否会在处理大量数据时更快地进行。
感谢您的回答。