我有一个获取单个字符串的方法并将其作为(假设)
返回s = "+8.7x^2+6x+3"
//OR
s = "-8.7x^2+6x+3"
如何格式化此字符串,以便在字符串的第一项为正(s.charAt(0))
时删除正号,但如果第一项为负,则不会删除负号?< / p>
我想使用s.subString()
和/或s.charAt()
,如果可能的话。
答案 0 :(得分:5)
s.charAt(0)
会为您提供第一个字符,因此您只需将其与+
进行比较,如果匹配,则使用substring
来删除它。
然而,charAt(0)
有一个令人讨厌的习惯,即没有空字符串,所以我更倾向于startsWith()
:
if (s.startsWith("+"))
s = s.substring(1);
答案 1 :(得分:2)
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
希望这有帮助。