从字符串中删除初始+符号(如果存在)

时间:2015-04-16 08:17:52

标签: java

我有一个获取单个字符串的方法并将其作为(假设)

返回
s = "+8.7x^2+6x+3"   
//OR
s = "-8.7x^2+6x+3"

如何格式化此字符串,以便在字符串的第一项为正(s.charAt(0))时删除正号,但如果第一项为负,则不会删除负号?< / p>

我想使用s.subString()和/或s.charAt(),如果可能的话。

3 个答案:

答案 0 :(得分:5)

s.charAt(0)会为您提供第一个字符,因此您只需将其与+进行比较,如果匹配,则使用substring来删除它。

然而,charAt(0)有一个令人讨厌的习惯,即没有空字符串,所以我更倾向于startsWith()

if (s.startsWith("+"))
    s = s.substring(1);

答案 1 :(得分:2)

@paroun刚刚发布了完美的答案,但我无法在任何地方找到它。如果将来有人需要这个问题和答案,这就是答案。

if (s.charAt(0) == '+') { 
           s = s.replaceFirst("\\+","");

答案 2 :(得分:0)

鉴于我们知道这总是第一个角色。您也可以使用条件运算符:

s = (s.charAt(0) == '+') ? s.substring(1) : s;

测试:

public static void main(String[] args){
    String s = "-8.7x^2+6x+3";
    s = (s.charAt(0) == '+') ? s.substring(1) : s;
    System.out.println(s);
}

输出是:

-8.7x^2+6x+3

虽然如果:

String s = "+8.7x^2+6x+3";

输出是:

8.7x^2+6x+3

希望这有帮助。