如何在与 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