在 java 中用另一种方法更改字符串内容
change string content in another method in java
当用户用另一种方法写下他的名字而不是显示他的名字时,我正在尝试编写简单的代码
字符串名称的问题一直保持为空并且不会改变
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String name="";
saisir(name);
System.out.println("your name is "+name);
}
static String saisir (String title){
Scanner s=new Scanner(System.in);
System.out.println("write your name");
String name = s.nextLine();
return name;
}
}
代码如下:
name = saisir(name);
或更好:
name = saisir();
并删除 title
参数,因为您不使用它。
您正在返回名称,但没有保留它。您正在传递一个标题,但没有使用它。让我们解决这两个问题。喜欢,
public static void main(String[] args) {
String name = saisir();
System.out.println("your name is "+name);
}
static String saisir() {
Scanner s=new Scanner(System.in);
System.out.println("write your name");
return s.nextLine();
}
在Java中,方法是按值传递的,这意味着您作为参数发送的字符串不会受到方法内部更改的影响(尽管您实际上并没有更改它:P) .它使用它的参考。当您在方法内部更改它时,您实际上创建了一个新字符串,但您的实际引用仍指向初始引用。
如果您想要更改名称,您应该像建议的其他答案一样在 main() 方法中进行分配。
name = saisir();
因为你也不需要那里的参数。
这样试试
public class Main {
public static void main(String[] args) {
String name = "";
name = saisir(); //set "name" equal to the String returned by saisir()
System.out.println("your name is " + name);
}
static String saisir() { //there is no need for this method to take any parameters
Scanner s = new Scanner(System.in);
System.out.println("write your name");
String name = s.nextLine();
return name;
}
}
当用户用另一种方法写下他的名字而不是显示他的名字时,我正在尝试编写简单的代码 字符串名称的问题一直保持为空并且不会改变
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String name="";
saisir(name);
System.out.println("your name is "+name);
}
static String saisir (String title){
Scanner s=new Scanner(System.in);
System.out.println("write your name");
String name = s.nextLine();
return name;
}
}
代码如下:
name = saisir(name);
或更好:
name = saisir();
并删除 title
参数,因为您不使用它。
您正在返回名称,但没有保留它。您正在传递一个标题,但没有使用它。让我们解决这两个问题。喜欢,
public static void main(String[] args) {
String name = saisir();
System.out.println("your name is "+name);
}
static String saisir() {
Scanner s=new Scanner(System.in);
System.out.println("write your name");
return s.nextLine();
}
在Java中,方法是按值传递的,这意味着您作为参数发送的字符串不会受到方法内部更改的影响(尽管您实际上并没有更改它:P) .它使用它的参考。当您在方法内部更改它时,您实际上创建了一个新字符串,但您的实际引用仍指向初始引用。 如果您想要更改名称,您应该像建议的其他答案一样在 main() 方法中进行分配。
name = saisir();
因为你也不需要那里的参数。
这样试试
public class Main {
public static void main(String[] args) {
String name = "";
name = saisir(); //set "name" equal to the String returned by saisir()
System.out.println("your name is " + name);
}
static String saisir() { //there is no need for this method to take any parameters
Scanner s = new Scanner(System.in);
System.out.println("write your name");
String name = s.nextLine();
return name;
}
}