Como remover todos os números em seqüência, exceto "1" e "2"?

Ruddy Cahyanto:

Eu quero excluir todos os números em um Stringexceto a quantidade 1e 2que autônomo. E então eu quero substituir 1com onee 2com two.

Por exemplo, a entrada e saída que espero são as seguintes:

String myString = "Happy New Year 2019, it's 1 January now,2 January tommorow";

resultado esperado:

myString = "Happy New Year, it's one January now,two January tommorow";

Assim, 1e 2em 2019são excluídos, mas 1e 2que sozinhos são substituídos por onee two.

Eu tentei usar regex, mas todos os números foram apagados. Aqui está o meu código:

public String cleanNumber(String myString){
    String myPatternEnd = "([0-9]+)(\\s|$)";
    String myPatternBegin = "(^|\\s)([0-9]+)";
    myString = myString.replaceAll(myPatternBegin, "");
    myString = myString.replaceAll(myPatternEnd, "");
    return myString;
}

Eu também tentei substituir com este regex [1]e [2]mas o 2019torna two0one9.

Eu não tenho nenhuma idéia de como mudar isso 1e 2que autônomo. Quaisquer recomendações?

anubhava:

Você pode usar replaceAllnesta ordem:

myString = myString
          .replaceAll("\\b1\\b", "one") // replace 1 by one
          .replaceAll("\\b2\\b", "two") // replace 2 by two
          .replaceAll("\\s*\\d+", "");  // remove all digits

//=> Happy New Year, it's one January now,two January tommorow

Também é importante usar limites de palavra durante a substituição 1e 2para evitar combinando esses dígitos como parte de algum outro número.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=312563&siteId=1
Recomendado
Clasificación