如何在与 main 方法不同的方法中初始化 String ?
How would I initialize a String in a separate method from the main method?
我想让用户输入一个小写的 b,程序识别出 b 是小写的,然后将其切换为大写的 B。由于在 运行 时间内不能编辑字符串,如何才能为了将 "name" 分配给 "name2",我使用了与 main 方法不同的方法。一旦我尝试在方法更改后打印出 "name2",编译器声称 name2 尚未初始化,即使它已经在单独的 class 中。
我已经尝试将 name2 初始化为 name2="";
这样编译器就不会说“当我尝试将 name2 打印到控制台时 name2 尚未初始化,但是,您不能在 运行次。
import java.util.Scanner;
public class Runner
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String name;
String name2;
TextArguments test1 = new TextArguments();
System.out.println("Please enter a lower case b");
name = input.nextLine();
test1.test(name,name2);
System.out.println(name2);
}
}
public class TextArguments
{
public String test(String name, String name2)
{
if(name == "b")
{
name2 = "B";
}
else
name2 = name;
return name2;
}
}
预期结果:
输入小写的b。
b
B
实际结果:
test1.test(name,name2); ("name2 might have no been initalized")
参数是函数的输入。您想要 return 字符串,以便可以从函数中取回它。
使用:
name2 = test1.test(name);
和:
public String test(String name)
{
String name2;
if(name == "b")
{
name2 = "B";
// etc
我想让用户输入一个小写的 b,程序识别出 b 是小写的,然后将其切换为大写的 B。由于在 运行 时间内不能编辑字符串,如何才能为了将 "name" 分配给 "name2",我使用了与 main 方法不同的方法。一旦我尝试在方法更改后打印出 "name2",编译器声称 name2 尚未初始化,即使它已经在单独的 class 中。
我已经尝试将 name2 初始化为 name2="";
这样编译器就不会说“当我尝试将 name2 打印到控制台时 name2 尚未初始化,但是,您不能在 运行次。
import java.util.Scanner;
public class Runner
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String name;
String name2;
TextArguments test1 = new TextArguments();
System.out.println("Please enter a lower case b");
name = input.nextLine();
test1.test(name,name2);
System.out.println(name2);
}
}
public class TextArguments
{
public String test(String name, String name2)
{
if(name == "b")
{
name2 = "B";
}
else
name2 = name;
return name2;
}
}
预期结果:
输入小写的b。 b B
实际结果:
test1.test(name,name2); ("name2 might have no been initalized")
参数是函数的输入。您想要 return 字符串,以便可以从函数中取回它。
使用:
name2 = test1.test(name);
和:
public String test(String name)
{
String name2;
if(name == "b")
{
name2 = "B";
// etc