java中的字符串是否有“ - =”命令?

时间:2015-09-28 18:40:01

标签: java string

我知道有+ =添加到字符串的末尾但是有一个 - =命令?如果是这样,它会从正面还是背面减去?如果它找不到您想要的东西会发生什么 - =?

8 个答案:

答案 0 :(得分:9)

不,字符串没有-=运算符。

答案 1 :(得分:2)

字符串仅支持++=。所有其他算术和复合语句在编译时本身都是无效的。

来自String docs

  

Java语言为字符串连接运算符(+)提供特殊支持,并为其他对象转换为字符串。

这并不意味着它支持所有其他操作。

要减去或制作字符串的一部分,还有其他方法,例如substringsplit等。

以下是来自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)

不,我相信没有。 String类仅支持+运算符以进行连接,但不支持-;因为-运算符在逻辑上没有任何意义。

答案 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"