我正在創建一個minecraft-forge mod,並且在將字符串放入塊中時出現問題#getBlockFromName(String name)。字符串:從字符串中創建一個數組,然後在字符串中逐個創建一個
String oreName = "minecraft:iron_ore -replace:minecraft:stone.minecraft:netherrack.minecraft:end_stone;";
和你一樣-replace後看到:我有一個塊的名字(我的世界:石)和一個點,比再次阻止名和一個點。我想將每個塊名稱拆分爲一個單獨的字符串並逐一讀取,以便我可以將它插入塊#getBlockFromName並從每個字符串中獲取1個塊。我嘗試使用String#split(「。」)將其分割成數組,但是當我通過使用數組#toString將它切換回String時,它是空的。我想用點來分割它,因爲我有一個配置文件,所以這些塊可以更改爲任何東西,我不能只是拔出minecraft:Stone,因爲使用我的mod的人將能夠配置我的世界:石頭到其他東西,並通過在第一個塊名稱後面使用點添加另一個塊名稱。 這是我迄今所做的:
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: []"
的[分割字符串可能的複製。作爲分隔符](http://stackoverflow.com/questions/3387622/split-string-on-dot-as-delimiter) – esin88
問題幾乎完全是由於重複的舊問題。另外,dot可能不是一個好的分隔符。只要一個mod塊出現一個名字,比如說'mymod:ores.copper',你的系統就會崩潰。 ';','!'或'|'會更好。 – Draco18s