从字符串中分离多个整数

时间:2013-12-03 19:29:09

标签: java android string substring

我对制作保存功能有疑问。

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

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

4 个答案:

答案 0 :(得分:1)

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

另一方面,如果您必须坚持在文件中保存String,则可能需要使用分隔符(即\r\n#或{{1}在数字之间会这样做。因此,虽然解析分隔符会对你有很大的帮助,但是当事情变得复杂时要小心,单个|将无法很好地完成任务。然后,您可能希望使用JSON(为简单起见,我希望String)将您的设置编码为一个gson,反之亦然。

答案 1 :(得分:0)

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

int location = 02;
int level = 3;
int powerUps = 46;
... and so on

String saveString = location + "#" + level + "#" + powerUps + "#" + ...

然后将String加载回变量:

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

答案 2 :(得分:0)

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

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

String s = "002,007"

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

使用.split(String)命令将返回一个String数组,其中数组中的每个元素包含由参数拆分的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("");
}

答案 3 :(得分:-1)

假设您的所有数字都是3个字符长,您可能希望在以下函数中使用substring(int, int)

public static int[] getIntegersFromString(String numbers){
    int[] result = new int[numbers.length()/3];
    from(int i=0; i<(numbers.length()/3)-1; i++){
        result[i] = numbers.substring(i*3, i*3+2);
    }
    return result;
}