2

我有两种方法,第一种方法创建一个字符串,然后我想在第二种方法中使用该字符串。

当我研究这个时,我遇到了在方法之外创建字符串的选项,但是,这在我的情况下不起作用,因为第一种方法以几种方式更改字符串,我需要第二种方法中的最终产品.

代码:

import java.util.Random;
import java.util.Scanner;


public class yaya {
    public static void main(String[] args) {
        System.out.println("Enter a word:");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        Random ran = new Random();
        int ranNum = ran.nextInt(10);
        input = input + ranNum;
    }

    public void change(String[] args) {
        //more string things here
    }
}
4

6 回答 6

3

创建一个实例变量:

public class MyClass {

    private String str;

    public void method1() {
        // change str by assigning a new value to it
    }

    public void method2() {
        // the changed value of str is available here
    }

}
于 2013-05-11T11:17:39.777 回答
3

您需要从第一个方法返回修改后的字符串并将其传递给第二个方法。假设第一种方法将字符串中的所有实例或“r”替换为“t”(例如):

public class Program
{
    public static String FirstMethod(String input)
    {
        String newString = input.replace('r', 't');
        return newString;
    }

    public static String SecondMethod(String input)
    {
        // Do something
    }

    public static void main(String args[])
    {
        String test = "Replace some characters!";
        test = FirstMethod(test);
        test = SecondMethod(test);
    }
}

在这里,我们将字符串传递给第一个方法,它返回(返回)修改后的字符串。我们用这个新值更新初始字符串的值,然后将其传递给第二个方法。

如果字符串与所讨论的对象紧密相关,并且需要在给定对象的上下文中进行大量传递和更新,那么将其作为 Bohemian 描述的实例变量更有意义。

于 2013-05-11T11:18:22.127 回答
0
public class MyClass {

  public string method1(String inputStr) {
    inputStr += " AND I am sooo cool";

    return inputStr;
  }

  public void method2(String inputStr) {
    System.out.println(inputStr);
  }

  public static void main(String[] args){
    String firstStr = "I love return";

    String manipulatedStr = method1(firstStr);

    method2(manipulatedStr);
  }
}
于 2013-05-11T11:23:47.810 回答
0

在第二种方法中将修改后的字符串作为参数传递。

于 2013-05-11T11:13:46.887 回答
0

创建一个静态变量在两种方法中都使用了相同的变量。

于 2013-05-11T11:14:26.373 回答
0

既然你提到这两种方法都应该能够独立调用,你应该尝试这样的事情:

public class Strings {

public static String firstMethod() {
    String myString = ""; //Manipulate the string however you want
    return myString;
}

public static String secondMethod() {
    String myStringWhichImGettingFromMyFirstMethod = firstMethod();
    //Run whatever operations you want here and afterwards... 
    return myStringWhichImGettingFromMyFirstMethod;
}
}

因为这两个方法都是静态的,所以您可以在 main() 中按名称调用它们,而无需创建对象。顺便说一句,你能更具体地说明你想要做什么吗?

于 2013-05-11T11:39:41.640 回答