Я пытаюсь использовать метод replaceAll()
, чтобы заменить все в строке, кроме последовательности строк, но я не заставляю ее работать, у меня есть следующий код:
В основном:
String message = "§eTeste"
String color = message.replaceAll(?, ""); // The problem
System.out.println(color);
Выходные данные должны быть «§e»
Код:
String[] args = message.split(" ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < args.length; i++) {
String teste = args[i].replaceAll("§[0-9A-Fa-fK-Rk-r]", "");
if (i == (args.length-1)) {
if (teste.matches("http://" + "(.*)") || teste.matches("https://" + "(.*)")) {
String cor = "";
if (!args[i].matches("(.*)" + "§[0-9A-Fa-fK-Rk-r]" + "(.*)") && (sb.toString() !=null) && !sb.toString().isEmpty()) {
cor = sb.toString().replaceAll("[^(§[0-9A-Fa-fK-Rk-r])]", "");
}
if ((sb.toString() !=null) && !sb.toString().isEmpty()) {
JSONObject objeto = new JSONObject();
objeto.put("text", sb.toString());
jmessage.add(objeto);
}
JSONObject objeto = new JSONObject();
JSONObject extra = new JSONObject();
extra.put("action", "open_url");
extra.put("value", teste);
objeto.put("text", cor + args[i]);
objeto.put("clickEvent", extra);
jmessage.add(objeto);
}
else {
JSONObject objeto = new JSONObject();
sb.append(args[i]);
objeto.put("text", sb.toString());
jmessage.add(objeto);
}
}
else {
if (teste.matches("http://" + "(.*)") || teste.matches("https://" + "(.*)")) {
String cor = "";
if (args[i].matches("(.*)" + "§[0-9A-Fa-fK-Rk-r]" + "(.*)")) {
cor = args[i].replaceAll("[^(§[0-9A-Fa-fK-Rk-r])]", "");
}
else if (sb.toString() !=null) {
cor = sb.toString().replaceAll("[^(§[0-9A-Fa-fK-Rk-r])]", "");
}
if ((sb.toString() !=null) && !sb.toString().isEmpty()) {
JSONObject objeto = new JSONObject();
objeto.put("text", sb.toString());
jmessage.add(objeto);
sb = new StringBuilder();
sb.append(" " + cor);
}
JSONObject objeto = new JSONObject();
JSONObject extra = new JSONObject();
objeto.put("text", cor + args[i]);
extra.put("action", "open_url");
extra.put("value", teste);
objeto.put("clickEvent", extra);
jmessage.add(objeto);
}
else {
sb.append(args[i] + " ");
}
}
}
jmessage - это JSONArray, созданный из сообщения, которое является строковым вводом, сделанным отправителем (игроком)./ console)
"§ [0-9A-Fa-fK-Rk-r]" представляет цвет сообщения, в этом методе я создаю JSONArray, в котором расположение ссылки имеет click_event (каждый раз, когда создается новый «текст», мне нужно отправить ему цвет курсора)