2012-05-04 69 views
-4

我想从字母数字字符串中提取字符串'265.12'或'0.00',它可以在java中具有值'265.12+'或'265.12-'和'0.0+'或'0.0-' 。从字母数字字符串中提取数字

是否可以一次性更换而不是使用+和 - 符号的两种替换方法?

+3

你甚至没有激励使用替换方法。您可以在检查最后一个字符的情况下使用子字符串方法。该条件可以作为switch语句完成。 –

+2

输入和输出不清楚,你能给出一个完整的例子,说明一个字符串是什么样的,以及你想要提取什么? – amit

+0

你想保留号码或除了号码以外的所有信息吗? –

回答

0

我认为.replaceAll("\\$ ?(.+) ?[+-]", "$1")应该做的伎俩。

PS:由@userUnknown重新校正 - ”

PS:通过@MarkoTopolnik :)

PS修正通过自己= d重新编辑

+0

为什么不是“[+ \\ - ]”?更简单。 –

+0

你说得对,我认为我们必须逃避'+'。 – sp00m

+2

如果它是该组的最后一个或第一个字符,则不需要屏蔽组中的减号。 '[+ - ]'或'[ - +]'很好。 –

0

高效的实现您的具体使用情况:

String extractNum(String in) { 
    final char last = in.charAt(in.length()-1); 
    return (last == '+' || last == '-') ? in.substring(0, in.length()-1) : in; 
} 
+0

这是不确定的标志将出现在最后,上面的方法可能会删除一些其他数据 – ank87