用String创建一个数组,然后逐个在String中创建一个数组

时间:2017-04-21 19:50:10

标签: java arrays string minecraft-forge

我正在制作一个minecraft-forge mod,我遇到了将String放入Block#getBlockFromName(String name)的问题。字符串:

String oreName = "minecraft:iron_ore -replace:minecraft:stone.minecraft:netherrack.minecraft:end_stone;";

就像你看到的那样 - 替换:我有一个块名(我的世界:石头)和一个点,而不是块名和一个点。我想将每个块名称拆分为一个单独的String并逐个读取,这样我就可以将它插入到Block#getBlockFromName中,并从每个String中获取1个块。我尝试使用String#split(“。”)将其拆分为一个数组,但是当我通过使用Arrays#toString将它切换回String时打印出数组时,它是空的。我想通过点分割它,因为我有一个配置文件,所以这些块可以改为任何东西,我不能只是拔出我的世界:因为那些使用我的mod的人将能够配置minecraft:stone to other else,并在第一个块名称后面使用一个点添加另一个块名称。 这就是我到目前为止所做的:

String oreName = "minecraft:iron_ore -replace:minecraft:stone.minecraft:netherrack.minecraft:end_stone;";

    String block1 = oreName.substring(oreName.indexOf("-replace:"));
    String block2 = block1.replace("-replace:", "");
    String block3 = block2.contains(" -") ? block2.substring(0, block2.indexOf(" ")) : block2.replace(";", "");
    System.out.println("The Block Names Are: " + block3); // It prints it just without "minecraft:iron_ore -replace:" and ";" at the end
    String[] block4 = block3.split(".");
    System.out.println("The array: " + Arrays.toString(block4)); // only prints out "The array: []"

1 个答案:

答案 0 :(得分:0)

问题是String.split()将正则表达式作为参数。 对于您的情况,您需要将.符号转义为:

String[] block4 = block3.split("\\.");

打印

The array: [minecraft:stone, minecraft:netherrack, minecraft:end_stone]