fork download
  1.  
  2. class Pokemon {
  3.  
  4. public enum Tipo {
  5. FIRE, WATER, ICE, ELECTRIC, GRASS, DARK, BUG, GHOST, ROCK, FAIRY, GROUND, DRAGON, PSYCHIC, POISON, NORMAL, FIGHTING, STEEL, FLYING;
  6. }
  7.  
  8. public String substituir(String texto) {
  9. for (Tipo tipo : Tipo.values()) {
  10. String classe = tipo.name().toLowerCase();
  11.  
  12. // (?i) é uma expressão regular para ignorar o case das palavras. Por exemplo: Irá encontrar Electric, ELECTRIC e electric
  13. // Os parênteses indicam um grupo, que será utilizado na segunda parte do replace com $ + a posição desse grupo
  14. // o | é uma cláusula OU na expressão regular, ou seja, irá procurar electric-type e electric também
  15. texto = texto.replaceAll("(?i)(" + classe + "-type|" + classe + ")", "<span class=\"tipo-pokemon " + classe + "\">$1</span>");
  16. }
  17.  
  18. return texto;
  19. }
  20.  
  21. public static void main(String[] args) {
  22. Pokemon pokemon = new Pokemon();
  23.  
  24. System.out.println(pokemon.substituir("Electric-type: Quando o HP está abaixo de 1/3, os moves do tipo FIRE ganham um bônus de 50% grass."));
  25. }
  26. }
  27.  
Success #stdin #stdout 0.04s 711168KB
stdin
Standard input is empty
stdout
<span class="tipo-pokemon electric">Electric-type</span>: Quando o HP está abaixo de 1/3, os moves do tipo <span class="tipo-pokemon fire">FIRE</span> ganham um bônus de 50% <span class="tipo-pokemon grass">grass</span>.