【问题标题】:Separate Multiple Integers from a String从字符串中分离多个整数
【发布时间】:2013-12-03 19:29:09
【问题描述】:

我有一个关于制作保存功能的问题。

我正在尝试将字符串保存为单个文件以设置游戏的特定设置。例如,saveFile 将读取"002007...",其中002 是玩家的位置,然后007 是玩家的等级。

我了解如何将各种变量编译成单个字符串,但我将如何将其返回给单个变量?

【问题讨论】:

  • 我在这里看到了 XY 问题。
  • 请尝试一些答案并留下反馈。接受最适合你的那个。

标签: java android string substring


【解决方案1】:

如果您真的想在 Android 上保存游戏设置,最好使用 SQLiteSharedPreferences

另一方面,如果您必须坚持在文件上保存String,您可能需要在数字之间使用分隔符(即\r\n#| 会这样做)。因此,虽然解析回分隔符会对您有很大帮助,但请注意,当事情变得复杂时,单个 String 不会很好地做到这一点。然后您可能想使用 JSON(为简单起见,我更喜欢 gson)将您的设置编码为一个 String,反之亦然。

【讨论】:

    【解决方案2】:

    您可以在值之间使用分隔符,如下所示:

    int location = 02;
    int level = 3;
    int powerUps = 46;
    ... and so on
    
    String saveString = location + "#" + level + "#" + powerUps + "#" + ...
    

    然后将字符串加载回变量中:

    String[] values = saveString.split("#");
    location = values[0];
    level = values[1];
    powerUps = values[2];
    ... and so on
    

    【讨论】:

    • 好的...谢谢。我认为这应该对我有用。
    【解决方案3】:

    我的建议是查看Shared Preferences,您可以阅读Android 文档here

    如果您确实想使用单个字符串文件方法,我建议使用分隔符。这只是意味着在不同的整数值之间放置逗号或其他类型的分隔符。而不是"002007",将其另存为"002,007"。示例:

    String s = "002,007"
    
    String[] values = s.split(","); // values[0] is "002" and values[1] is "007"
    

    使用.split(String) 命令将返回一个字符串数组,该数组中的每个元素都包含由参数分割的部分字符串,在本例中为:,

    如果您想区分每个人的值,可以这样做:

    String s = "002,007;003,008";
    
    String[] people = s.split(";"); // people[0] is "002,007", people[1] is "003,004" 
    
    String[][] person = new String[people.length][people[0].split(",").length];
    
    for (int i = 0; i < people.length; i++)
    {
        person[i] = people[i].split(",");
    }
    

    这是数组将包含的内容:

    人[0][0]是“002”
    人[0][1]是“007”
    人[1][0]是“003”
    人[1][ 1]是“008”

    // print it for your own testing
    for (String ppl[] : person)
    {
        for (String val : ppl)
        {
            System.out.print(val + " ");
        }
        System.out.println("");
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 1970-01-01
      • 2021-01-18
      • 2018-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-06
      相关资源
      最近更新 更多