package net.miz_hi.smileessence.command.post; import net.miz_hi.smileessence.command.MenuCommand; import net.miz_hi.smileessence.system.PostSystem; public class CommandZekamashi extends MenuCommand { @Override public void workOnUiThread() { String text = PostSystem.getText(); int start = PostSystem.getSelectionStart(); int end = PostSystem.getSelectionEnd(); PostSystem.setText(edit(text, start, end)); PostSystem.openPostPage(); } private String edit(String text, int start, int end) { StringBuilder master = new StringBuilder(text); if (start == end) { master.reverse(); String selected = master.toString(); String temp = "########TEMP########"; for (String bracket : brackets) { String first = bracket.split(",")[0]; String second = bracket.split(",")[1]; selected = selected.replace(first, temp).replace(second, first).replace(temp, second); } return selected; } else { String selected = text.substring(start, end); StringBuilder target = new StringBuilder(selected); target.reverse(); selected = target.toString(); String temp = "########TEMP########"; for (String bracket : brackets) { String first = bracket.split(",")[0]; String second = bracket.split(",")[1]; selected = selected.replace(first, temp).replace(second, first).replace(temp, second); } return master.replace(start, end, selected).toString(); } } private String[] brackets = new String[]{"(,)", "(,)", "「,」", "[,]", "{,}", "<,>", "/,\\", "\,/"}; @Override public String getName() { return "ぜかまし"; } public static void main(String[] args) { CommandZekamashi c = new CommandZekamashi(); System.out.println(c.edit("((「[{<\\\ぜかまし//>}]」))", 0, 0)); } }