main方法中的String如何在另一个方法中引用someText?

时间:2019-04-12 03:03:13

标签: java

我正在尝试首先输出如下所示的字符串:

Hello -

那么我需要,例如,如果我写的话,简会输出:

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 + "-"; 
   } 
}

4 个答案:

答案 0 :(得分:2)

我猜你正在寻找这样的东西:

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); 
   } 
}

答案 1 :(得分:1)

[a-zA-Z0-9_]*参数的作用域为someText方法;您正在执行的分配在方法外部不可见。您可以更改方法以返回addHyphen,然后将该结果分配给String

答案 2 :(得分:1)

如果要打印空格,请在addHyphen()中的传递的字符串后面加上连字符,然后可以执行以下操作:

public static String addHyphen(String someText) { 
    return someText + " -"; 
}

另外,请注意,此函数返回一个字符串,因此您需要在main()中更改代码:

String a = new String("Hello");  
System.out.println(addHyphen(a)); 

这只是返回字符串,并在调用函数后附加连字符。

注意:如果要输入字符串作为输入,则需要使用Scanner类。获取String对象输入的代码为:

Scanner scan = new Scanner(System.in);
System.out.println(“Input a String:”);
String str = scan.nextLine();

请注意,您需要导入java.util.Scanner才能使用Scanner

答案 3 :(得分:1)

我建议您研究Scopesometext不能保留其价值。每当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 + "-"; 
    } 
}