我知道有+ =添加到字符串的末尾但是有一个 - =命令?如果是这样,它会从正面还是背面减去?如果它找不到您想要的东西会发生什么 - =?
答案 0 :(得分:9)
不,字符串没有-=
运算符。
答案 1 :(得分:2)
字符串仅支持+
和+=
。所有其他算术和复合语句在编译时本身都是无效的。
Java语言为字符串连接运算符(+)提供特殊支持,并为其他对象转换为字符串。
这并不意味着它支持所有其他操作。
要减去或制作字符串的一部分,还有其他方法,例如substring
,split
等。
以下是来自docs
的子串的一些示例 String c = "abc".substring(2,3);
答案 2 :(得分:1)
没有。 x -= y;
运算符是x = x - y
的缩写。所以这应该意味着有一个减法运算符(-
)。在这个Summary of operators中,字符串没有这样的运算符。
此外,很难找到-
的良好实现:减法应该做什么?删除字符串的最后一部分?如果字符串x
不以y
结束,该怎么办?
答案 3 :(得分:1)
也许你想做,String a = "abc";
a -= 1;
并期待a = "ab"
?
如果是,请使用子字符串a = a.substring(0, a.length() - 1);
答案 4 :(得分:0)
+
运算符以进行连接,但不支持-
;因为-
运算符在逻辑上没有任何意义。
答案 5 :(得分:0)
String chaine = "abcdefgh";
String ch1 = "abc";
chaine = chaine.substring(chaine.indexOf("ch1"),ch1.length()+chaine.indexOf("ch1"));
答案 6 :(得分:0)
没有。编译器返回bad operand types for binary operator '-'
最好的办法是使用substring(int beginIndex)
或substring(int beginIndex, int endIndex)
String longString = "I am a string that is too long";
String shortString = longString.substring(0,13); //"I am a string"
以下是关于String对象的Javadoc:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
答案 7 :(得分:0)
您还可以使用replaceAll
,我认为这对您的目标最准确
String x = "Strabc";
x = x.replaceAll("abc", "");
结果
x = "Str";
但请记住,"abc"
的所有出现都会被替换,所以如果你有"abcStrabc"
,你将获得"Str"
。
replace
方法仅替换第一次出现,因此"abcStrabc"
会导致"Strabc"