2015-01-02 2 views
0

현재 나의 Bukkit (Minecraft) 플러그인의 경우 ItemStacks 이름으로 작업해야합니다. 나는 이러한 이름을 얻습니다.자바 문자열 자리 표시 자

item.getItemMeta().getDisplayName();.

플레이어를 나타내는 항목이므로 플레이어의 이름이 있습니다. 그러나 유감스럽게도 색상 코드가 있습니다. 이름을받은 결과는 "§7Baustein"과 유사합니다. "§7"은 색상 코드이고 "Baustein"은 플레이어의 이름입니다.

이제 색상 코드는 "§a"또는 "§3"또는 그와 비슷한 것일 수 있습니다. 플레이어의 이름 만 얻으려면 내가 얻은 문자열에서 해당 색상 코드를 제거해야합니다.

나는 "§"을 (를) 제거하는 방법을 항상 알고 있기 때문에 이것을 알고 있습니다 : string.replaceAll("§", "");. 그러나 그 뒤에 16 진법이있는이 숫자가 있는데, 나는 그것이 어떤 특정한 숫자인지를 모른다.

모든 가능성을 확인하는 대신 replaceAll("§" + the digit behind, "");의 종류가 있습니까?

나는 this과 같은 질문을 체크 아웃했으나 실제로 얻지 못했거나 내 답변을 포함하지 않았습니다.

누군가 나를 도울 수 있습니까?

+0

ReplaceAll은 regex를 사용하므로 다음과 같이 사용할 수 있다고 생각합니다. .replaceAll ("§ \\ p {XDigit} *", ""); 이 질문에 따라 : http://stackoverflow.com/questions/2756794/java-regex-for-matching-hexadecimal-numbers-in-a-file – engineercoding

답변

1

항상 당신이 사용할 수있는 제거 할 정확히 처음 두 문자 인 경우 :

public String removeColorCode(String s){ 
return s.substring(2); 
} 
1

예. 정규 표현식을 확인하십시오.

string.replaceAll("§[0-9a-fA-F]", "") 

은 §하고 문자열에서 하나의 16 진수를 제거합니다.