2017-02-15 4 views
-2

Учитывая 2 строки, верните их конкатенацию, за исключением опускания первого символа каждого из них. Строки будут по крайней мере, длиной 1.Как опустить первый символ строки в Java?

Вот мой код, но я не знаю, что случилось с ним:

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

есть мой код, но он не работает.

+0

Я уже опубликовал свой собственный код, извините за это. –

+1

Это потому, что класс String невозможен, вы не можете его изменить с помощью a.substring (1), вместо этого вы должны назначить результат другой String, такой как String result = a.substring (1); – jonhid

+0

Домашнее задание? – Trix

ответ

0

String s не изменяются, поэтому вызов a.substring(1)не меняет a. Вместо этого он создает совершенно новый String.

Отправляясь вместе с вашим стилем кодирования, вы должны изменить которые String s a и b имеют в виду путем переназначения их с помощью a = и b =:

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

Когда вы сделаете это, a в настоящее время относится к торговой марке новый String с одним меньшим персонажем в нем, чем оригинал a. b теперь относится к новой версии b с одним меньшим символом.

Затем, когда вы добавляете вместе два новых String, вы получаете нужный результат.

+0

В принципе, мне нужно сначала объявить «а»? –

+0

Нет, 'a' объявляется в заголовке метода: (' public String nonStart (String a, ... '⇐ прямо здесь). Строка' a = 'просто изменяется **, к которой относится' 'String''. После этой строки 'a' не ссылается на' String', с которой он начинал ссылаться. Он относится к новой, более короткой строке. –

0

Вы должны поместить результат конкатенации в другой String, так как объекты String в Java не поддаются обработке.

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; 
} 
+0

Thx много сейчас, я понимаю! –

Смежные вопросы