【问题标题】:How to concatenate strings and integer into a variable如何将字符串和整数连接成一个变量
【发布时间】:2011-09-01 01:48:48
【问题描述】:

这是一个非常愚蠢的问题,但我无法让它发挥作用。我使用了搜索选项,但找不到我的 android 答案。

我想做的事情如下:

在 res/strings.xml 我有几个字符串

<string name="good0">blablabla</string>
<string name="good1">balablabla2</string>
etc

我想在发生某些事情时随机显示这些字符串:

Toast.makeText(this,R.string.good+(Math.random()*10), Toast.LENGTH_LONG).show();

但这不起作用。

非常感谢您的帮助!

【问题讨论】:

  • 你为什么不用 StringArray 代替呢?没有办法做到这一点!
  • 我会选择 StringArray,我认为它是比使用案例更好的解决方案。感谢您的回答!

标签: android string concatenation string-concatenation


【解决方案1】:

使用String Array

strings.xml:

<resources>
    <string-array name="messages">
        <item>blablabla</item>
        <item>blablabla</item>
    </string-array>
</resources>

然后,在代码中你会得到类似的东西:

String[] messages = getResources().getStringArray(R.array.messages);
Random r = new Random();
String message = messages[r.nextInt(messages.length)];
Toast.makeText(this, message, Toast.LENGTH_LONG).show();

【讨论】:

    【解决方案2】:

    R.string.good 是一个int,因为它指的是一个资源。此 int 标识 XML 文件中的字符串。 Android 为其资源标识符提供了一个getString()

    Android Docs on String Resources

    您必须以这种方式从资源文件中取出字符串,然后正常连接。

    【讨论】:

      【解决方案3】:

      你不能这样做。

      您必须使用switch 块。

      String myString;
      
      switch(Math.random() * 10) {
         case 0:
             myString = getString(R.string.good1);
             break;
      }
      
      Toast.makeText(this, myString, Toast.LENGTH_LONG).show();
      

      【讨论】:

      • 没想到这是不可能的。不过非常感谢您的回答!
      • R.string.good1 只会将一个 int 放入字符串中。如果不使用适当的getString() 调用,这将不起作用。
      • 我认为这不是一个好主意,尤其是当有很多字符串时。
      【解决方案4】:

      如果您有多个字符串值或整数值并将其存储在单个字符串中,那么 String Builder 是最好的选择 操作类型,例如你有一个字符串数组,你想 存储在一个字符串中,然后显示这个字符串然后使用这个 方法。它会百分百有效,而且非常适合 这类问题。**

      String my_str=null;
      StringBuilder bldr=new StringBuilder();
      for(int j=0;j<5;j++)
        bldr.append(phonearray[j]).append(",");
      my_str=bldr.toString();
      

      在这种情况下,我将电话数组分配给单个字符串,并且 然后我会显示它等等......

      【讨论】:

        猜你喜欢
        • 2020-02-27
        • 1970-01-01
        • 1970-01-01
        • 2022-12-17
        • 1970-01-01
        • 2016-08-08
        • 2022-12-04
        • 1970-01-01
        • 2015-05-02
        相关资源
        最近更新 更多