Na minha plugin para o espigão, um jogador entra um comando como /logging chat clear 1d
. O número argumento 2 (3 arg) que é 1d
necessidades a serem analisados para o data (por exemplo 1d = 1 dia, 15m = 15 minutos). Eu descobri a parte de análise, mas quando eu tento analisar mais de um número (1 vs 11) a minha análise não funciona porque eu dividir com base em caracteres, não com base em se o seu um inteiro ou string. Eu String[] part = arg3.split("");
, em seguida, tomar o primeiro personagem como o número ea segunda como a string. Como posso fazer isso, mas dividida para que eu possa ter vários números? (regex?)
private void myMethod() {
String integers = "";
String characters = "";
String splitArgument = ""; //this is the 1d or 11d part
for(int x = 0; x < splitArgument.length(); x++) {
Char currentChar = splitArgument.charAt(x);
if(Character.isDigit(currentChar)) {
integers += currentChar;
}else {
characters += currentChar;
}
}
}
Onde myMethod apenas representa a área do código que você está analisando a entrada. Você pode criar um método (como isInteger ()) que leva os personagens a partir da corda que você está verificando e determina se eles são inteiros / Cordas e cadeias de re-concatenate para eles. Para a parte inteira que você poderia, então, fazer:
int myInteger = Integer.parseInt(integers);