如何在Java中省略字符串的第一个字符串?

时间:2017-02-15 04:59:13

标签: java string

给定2个字符串,返回它们的串联,除了省略每个字符串的第一个字符。字符串的长度至少为1。

这是我的代码,但我不知道它有什么问题:

public String nonStart(String a, String b) {
       a.substring(1);
       b.substring(1);
       return a + b;

有我的代码,但根本不起作用。

2 个答案:

答案 0 :(得分:0)

您必须将连接的结果放入另一个String,因为Java中的String个对象是不可更改的。

public String nonStart(String a, String b)
{    
  String S = ""; // new String object
  S += a.substring(1); // concatenation with String a, without first character
  S += b.substring(1); // concatenation with String b, without first character
  return S;
}

答案 1 :(得分:0)

String不会更改,因此调用a.substring(1) 不会更改a 。相反,它会创建一个全新的String

根据您的编码风格,您需要使用Stringa重新分配b s a = b =public String nonStart(String a, String b) { a = a.substring(1); b = b.substring(1); return a + b; } 所指的内容。 :

a

当您这样做时,String现在引用全新的a,其中的字符少于原始bb现在指的是String的新版本,其中少了一个字符。

然后,当你将两个新的created加在一起时,你会得到你想要的结果。