2014-10-16 1 views
0

Я хочу напечатать «Два» вместо 2 и «Четыре» вместо 4 на Java в FOR FOR Loop при печати чисел от 1 до 50 .Как заменить числовое значение на строку в Java

Например:

1 
Two 
3 
Four 
5 
. 
. 
. 
1Four 
15 
. 
. 
. 
Two1 
TwoTwo 
Two3 
TwoFour 
. 
. 
. 
50 
+0

пожалуйста, укажите код, который вы до сих пор попытки. Кроме того, взгляните на [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) –

ответ

0

Java-8 решение:

public class Play { 

    public static void main(String[] args) { 
     rangeClosed(1, 50).forEach(Play::twoOrFour); 
    } 

    public static void twoOrFour(long n) { 
     String result = n + ""; 
     if (n % 10 == 2) { 
      n /= 10; 
      result = (n == 0 ? "" : n) + "two"; // the ternary exp: an ugly patch to get rid of the "0" in the first two cases 
     } else if (n % 10 == 4) { 
      n /= 10; 
      result = (n == 0 ? "" : n) + "four"; 
     } 
     System.out.print(result + " "); 
    } 
} 

ВЫВОД

1 two 3 four 5 6 7 8 9 10 11 1two 13 1four 15 16 17 18 19 20 21 2two 23 2four 25 26 27 28 29 30 31 3two 33 3four 35 36 37 38 39 40 41 4two 43 4four 45 46 47 48 49 50 

UPDATE
В случае, если вы хотите заменить любое появление «2» с «два» и «4» с «четыре» ссылочного метода может быть еще проще :

public static void twoOrFour(long n) { 
    String result = n + ""; 
    result = result.replaceAll("2", "two").replaceAll("4", "four"); 
    System.out.print(result + " "); 
} 

, который будет выводить:

1 two 3 four 5 6 7 8 9 10 11 1two 13 1four 15 16 17 18 19 two0 two1 twotwo two3 twofour two5 two6 two7 two8 two9 30 31 3two 33 3four 35 36 37 38 39 four0 four1 fourtwo four3 fourfour four5 four6 four7 four8 four9 50 

Или если быть еще моднее - это может быть сделано в однострочника:

rangeClosed(1, 50).forEach((x)-> System.out.print((x + " ").replaceAll("2", "two").replaceAll("4", "four"))); 
Смежные вопросы