0

したがって、メソッドからこれらの文字列の値を取得し、それらをファイル アドレスとして結合する必要がありますが、FILE_PATH_STRING で行ったように文字列を結合することはできません。concat メソッドを使用しようとしましたが、うまくいきません。FILE_PATH_STRING は常に最初の文字列 (この場合は WORLD_PATH) と等しくなります

public static final String WORLD_PATH = "The World/";
public static String CONTINENTS_NAME="";
public static String COUNTRY_NAME="";
public static String FILE_TYPE="";

public static String FILE_PATH_STRING = WORLD_PATH + CONTINENTS_NAME + COUNTRY_NAME + FILE_TYPE;
public static File FILE_PATH = new File(FILE_PATH_STRING);

マップをクリックすると、メソッドが地域の名前を返し、それらの静的文字列に保存するように動作するはずです。デバッグしてみました。すべての文字列に値があり、修正されます。しかし、 FILE_PATH_STRING は、そこに入れた最初の文字列にのみ等しいです。プログラムを実行した後、CONTINENTS_NAME = Asia COUNTRY_NAME は CONTINENTS_NAME と等しくなるはずです。これは、ファイル アドレス FILE_PATH = .png を設定する方法だからです。これはロード マップのメソッドです。

4

1 に答える 1

1

「メソッドから 4 つの文字列値を取得する」方法について知りたいのですが、それについて教えていただけますか? それが次のようなものである場合:

getStrings(WORLD_PATH, CONTINENTS_NAME, COUNTRY_NAME, FILE_TYPE);

それが問題です。関数は、getStrings()渡された文字列を変更できません。

もちろん、十分な情報が提供されていないため、私はただの推測にすぎません。

次のようなことができますか:

String path = getWorldPath() + getContinent() + getCountry() + getFileType();

つまり、4 つの別々のメソッドを実装して、パスの 4 つの別々の部分を取得しますか?

それ以外の場合は、4 つの文字列を同時に返すことができる型を定義するか、配列のようなコンテナーでそれらを返す必要があります。

void test()
{
    String[] pathParts = getStrings();
    FILE_PATH_STRING = pathParts[0] + pathParts[1] + pathParts[2] + pathParts[3];
}

String[] getStrings()
{
    String[] ret = new String[4];
    ret[0] = "The world";
    ret[1] = "South America";
    ret[2] = "Chile";
    ret[3] = ".txt";
    return ret;
}

もちろん、文字列を連結するだけなら、getStrings()関数でそれを行うことができます。

于 2013-05-14T06:31:16.913 に答える