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

我很好奇,你如何“从一个方法中获得四个字符串值” - 你能启发我们吗?因为如果是这样的话:

getStrings(WORLD_PATH, CONTINENTS_NAME, COUNTRY_NAME, FILE_TYPE);

那么这就是问题所在 - 该函数getStrings()无法修改传入的那些字符串。

当然,我只是在猜测,因为您没有提供足够的信息。

你可以做类似的事情:

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

也就是说,实现四个独立的方法来获取路径的四个独立部分?

否则,您将必须定义一个可以同时返回所有四个字符串的类型,或者将它们返回到像数组这样的容器中:

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 回答