我如何在与main方法不同的方法中初始化String?

时间:2019-04-04 00:53:22

标签: java methods initialization

我希望用户输入小写字母b,并且程序会识别出b是小写字母,然后将其切换为大写字母B。由于在运行时无法编辑字符串,我该如何使用与为了将“名称”分配给“名称2”的主要方法。一旦我尝试在方法更改后打印出“ name2”,编译器就会声称name2尚未初始化,即使它已经在单独的类中也是如此。

我已经尝试将name2初始化为name2="";,所以编译器不会说“一旦我尝试将name2打印到控制台,就没有初始化name2,但是,您无法在运行时重新定义String。 / p>

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")

1 个答案:

答案 0 :(得分:-1)

参数是功能的输入。您想要返回字符串,以便可以将其从函数中取出。

使用:

name2 = test1.test(name);

和:

public String test(String name)
{                    
    String name2;           
    if(name == "b") 
    {
         name2 = "B";
    // etc