java - 根据另一个字符串的值确定一个字符串?

标签 java android string

不太确定我将如何描述这个问题,所以我将直接跳到示例代码中。

我有一个 Constants.java

   package com.t3hh4xx0r.poc;


public class Constants {

    //RootzWiki Device Forum Constants
    public static final String RWFORUM = "http://rootzwiki.com/forum/";
    public static final String TORO = "362-cdma-galaxy-nexus-developer-forum";

    public static String DEVICE;
}

在尝试确定设备类型时,我使用了这种方法。

public void getDevice() {
    Constants.DEVICE = android.os.Build.DEVICE.toUpperCase();
    String thread = Constants.(Constants.DEVICE);
}

虽然那是不正确的,但我认为这是可行的。

在我的 Galaxy Nexus 案例中,我将 Constants.DEVICE 设置为 TORO。然后我想将线程字符串设置为 Constants.TORO。

我认为我没有很好地解释这一点,但您应该能够从示例代码中理解我想做的事情。我要

为字符串线程设置的常量(CONSTANTS.DEVICE 的值)。

换一种说法,

我想获取常量。(//android.os.Build.DEVICE.toUpperCase() 的值)

对于措辞不当的问题,我深表歉意,我不知道有什么更好的方法来解释我想要实现的目标。

我正在尝试根据设备类型确定线程。我可以进去做一个

if (Constants.DEVICE.equals("TORO"){
    String thread = Constants.TORO;
}

但我计划在未来添加更多的设备选项,并希望它像向 Constants.java 添加字符串一样简单,而不必添加另一个 if 子句。

最佳答案

我建议使用枚举而不是字符串——然后你可以使用:

String name = android.os.Build.DEVICE.toUpperCase();
// DeviceType is the new enum
DeviceType type = Enum.valueOf(DeviceType.class, name);

您可以将字符串的值放在枚举的字段中,并通过属性公开它:

public enum DeviceType {
    RWFORUM("http://rootzwiki.com/forum/"),
    TORO("362-cdma-galaxy-nexus-developer-forum");

    private final String forumUrl;

    private DeviceType(String forumUrl) {
        this.forumUrl = forumUrl;
    }

    public String getForumUrl() {
        return forumUrl;
    }
}

(我在猜测字符串值的含义 - 不是一个很好的猜测,但希望它能提供正确的想法,以便您可以使您的实际代码更有意义。)

编辑:或使用 map :

Map<String, String> deviceToForumMap = new HashMap<String, String>();
deviceToForumMap.put("RWFORUM", "http://rootzwiki.com/forum/");
deviceToForumMap.put("TORO", "362-cdma-galaxy-nexus-developer-forum");

...

String forum = deviceToForumMap.get(android.os.Build.DEVICE.toUpperCase());

关于java - 根据另一个字符串的值确定一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8711285/

相关文章:

java - 将 java 字节数组转换为字符串

android - 设备上的应用程序图标太小

android - Intent.ACTION_GET_CONTENT 打开图片和pdf

c# - 以 C# 形式将文本框中的信息显示到列表框中

regex - 在 shell 脚本中进行字符串操作的最佳方法是什么?

java - 如何从整个 jar 导入特定的类?

java - 让 mod_jk 运行

java - 确保在 GAE/J 中每个用户请求处理序列化

android - 将参数从 java Activity 传递到 Adob​​e AIR 应用程序

c++ - 扩展 vector 迭代器以访问包含的类/结构的数据成员