Di 1.13, file bahasa Minecraft diubah dari format kunci multi-line = nilai sederhana ke JSON .
Tantangan
Tulis program yang mengkonversi dari format asli mengembalikan string JSON. Input dapat diambil dengan menggunakan metode input standar, output harus json dari metode output standar
Format asli berisi baris dengan pasangan kunci = nilai, misalnya
tile.dirt.name=Dirt
advMode.nearestPlayer=Use "@p" to target nearest player
build.tooHigh=Height limit for building is %s blocks
Harus dikonversi ke satu objek JSON besar dengan kunci = nilai
{
"tile.dirt.name": "Dirt",
"advMode.nearestPlayer": "Use \"@p\" to target nearest player",
"build.tooHigh": "Height limit for building is %s blocks"
}
Beberapa detail
- Setiap JSON yang valid diizinkan selama hanya berisi pasangan kunci / nilai yang benar. Tanda koma diizinkan karena Minecraft mengizinkannya.
- Satu-satunya hal yang harus diloloskan adalah kutipan. (Tidak ada baris baru, garis miring terbalik, atau hal-hal yang melanggar json lainnya ada dalam file bahasa sebelum 1,13)
- Baris kosong harus diabaikan
- Baris mengandung persis satu sama dengan
Uji Kasus
Memasukkan:
tile.dirt.name=Dirt
advMode.nearestPlayer=Use "@p" to target nearest player
build.tooHigh=Height limit for building is %s blocks
Keluaran:
{
"tile.dirt.name": "Dirt",
"advMode.nearestPlayer": "Use \"@p\" to target nearest player",
"build.tooHigh": "Height limit for building is %s blocks"
}
Memasukkan:
translation.test.none=Hello, world!
translation.test.complex=Prefix, %s%2$s again %s and %1$s lastly %s and also %1$s again!
translation.test.escape=%%s %%%s %%%%s %%%%%s
translation.test.invalid=hi %
translation.test.invalid2=hi % s
translation.test.args=%s %s
translation.test.world=world
Keluaran:
{
"translation.test.none": "Hello, world!",
"translation.test.complex": "Prefix, %s%2$s again %s and %1$s lastly %s and also %1$s again!",
"translation.test.escape": "%%s %%%s %%%%s %%%%%s",
"translation.test.invalid": "hi %",
"translation.test.invalid2": "hi % s",
"translation.test.args": "%s %s",
"translation.test.world": "world",
}
Memasukkan:
stat.mineBlock=%1$s Mined
stat.craftItem=%1$s Crafted
stat.useItem=%1$s Used
stat.breakItem=%1$s Depleted
Keluaran:
{
"stat.mineBlock": "%1$s Mined",
"stat.craftItem": "%1$s Crafted",
"stat.useItem": "%1$s Used",
"stat.breakItem": "%1$s Depleted"
}
=
?
tile.dirt.name
jadinya"block.minecraft.dirt"
?