#java
#java
Вопрос:
Я пытаюсь сначала вывести строку, подобную этой:
Hello -
тогда мне нужно, чтобы, например, если я напишу, Jane это выводило:
Hello - - Jane -
правильный ли этот код? Если нет, что я сделал не так и что на самом деле делает этот код?
Спасибо
public class myClass {
public static void main(String[] args) {
String a = new String("Hello");
addHyphen(a);
System.out.println(a);
}
public static void addHyphen(String someText) {
someText = "-" someText "-";
}
}
Комментарии:
1. Ваша функция не принимает никаких входных данных, так где вы будете вводить «Джейн»? В настоящее время
addHyphen()
просто вернет-Hello-
2. о, я понимаю, так что мне нужно было бы просто попросить пользователя ввести?
3. Я обновил свой ответ @ppc, обязательно добавьте эти изменения в свой код при его запуске
Ответ №1:
Я думаю, вы ищете что-то вроде этого:
public class Main
{
public static void main(String[] args) {
String a = "Hello";
addHyphen(a);
}
public static void addHyphen(String someText) {
someText = "-" someText "-";
System.out.println(someText);
}
}
Ответ №2:
Если вы хотите распечатать пробел, за которым следует дефис после переданной строки addHyphen()
, тогда вы можете сделать что-то вроде этого:
public static String addHyphen(String someText) {
return someText " -";
}
Также обратите внимание, что эта функция возвращает строку, поэтому вам нужно изменить свой код в main()
:
String a = new String("Hello");
System.out.println(addHyphen(a));
Это просто возвращает строку обратно с добавлением дефиса к вызывающей функции.
ПРИМЕЧАНИЕ: если вы хотите ввести строку в качестве входных данных, вам нужно использовать Scanner
класс. Код для получения ввода строкового объекта будет:
Scanner scan = new Scanner(System.in);
System.out.println(“Input a String:”);
String str = scan.nextLine();
Обратите внимание, что вам необходимо импортировать java.util.Scanner
для использования Scanner
класса
Ответ №3:
someText
Аргумент ограничен областью действия addHyphen
метода; выполняемое вами присваивание не отображается вне метода. Вы можете изменить метод, чтобы вернуть a String
, а затем присвоить этому результату a
.
Ответ №4:
Я рекомендую вам изучить область видимости, sometext
не могу сохранить ее значение. Он всегда будет иметь new
значение всякий раз, когда его called
. Либо вам нужно изменить scope
переменные, либо вы можете сделать что-то вроде этого:
public class myClass
{
public static void main(String[] args)
{
String a = "Hello";
String b = "Jane";
System.out.println( addHyphen(a));
System.out.println( addHyphen(a) addHyphen(b));
}
public static String addHyphen(String someText)
{
return " -" someText "-";
}
}