2

最初のメソッドは文字列を作成し、次にその文字列を 2 番目のメソッドで使用します。

これを調査したところ、メソッドの外部で文字列を作成するオプションに出くわしましたが、最初の方法ではいくつかの方法で文字列が変更され、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

最初のメソッドから変更された文字列を返し、それを 2 番目のメソッドに渡す必要があります。最初のメソッドが文字列内のすべてのインスタンスまたは '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);
    }
}

ここでは、文字列を最初のメソッドに渡します。これにより、変更された文字列が返されます ( return )。この新しい値で初期文字列の値を更新し、それを 2 番目のメソッドに渡します。

文字列が問題のオブジェクトに強く関連付けられており、特定のオブジェクトのコンテキスト内で頻繁に渡されて更新される必要がある場合は、Bohemian が説明するようにインスタンス変数にする方が理にかなっています。

于 2013-05-11T11:18:22.127 に答える
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 に答える
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 に答える
0

2 番目のメソッドで変更された文字列を引数として渡します。

于 2013-05-11T11:13:46.887 に答える
0

両方のメソッドで同じ変数を使用する静的変数を作成します。

于 2013-05-11T11:14:26.373 に答える