2015-05-12 3 views
-6

Я пытаюсь написать программу, которая принимает ввод и представляет ввод с каждым пятым символом, замененным на X (также счетчики пробелов). Например: вход: «Привет, меня зовут Марио» outpu: «hellX мой Xame Xi MaXiO»Замените каждый пятый символ входа (SPACES COUNT)

я только управлять, чтобы заменить конкретные буквы, например каждый «м» письмо.

Любая помощь?

+0

Вы можете преобразовать строку в полукоксе-массив и итерация через него, в то время как меняются каждый 5-ый символ с помощью индекса –

+0

Если бы мы могли увидеть код, мы сможем чтобы указать, почему он не работает, как вы намереваетесь. – CodeNewbie

+0

Возможный дубликат [Вставка пробела каждый (x) JAVA с использованием регулярного выражения] (http://stackoverflow.com/questions/29335312/inserting-a-space-every-x-java-using-regular-expression) –

ответ

0

Вот код для вас:

String test = "hello my name is mario"; 

    String result = ""; 
    int c = 1; 
    for (int i = 0; i < test.length(); i++) { 
     if (c++==5) { 
      result += "X"; 
      c = 1; 
     } else { 
      result += test.charAt(i); 
     } 
    } 
    System.out.println("result = " + result); 
+0

почему (C++ == 5) и не (c% 5 == 0)? это быстрее? –

+0

Я не знаю, если это быстрее, но, возможно, лучше для человека читается – chokdee

1

Если вы не заботитесь о том, какой символ находится на каждой пятой позиции, которую вы могли бы использовать регулярное выражение.

String input = "hello my name is mario"; 
String output = input.replaceAll("(....).", "$1X"); 
System.out.printf("input : %s%noutput: %s%n", input, output); 

выход

input : hello my name is mario 
output: hellX my Xame Xs maXio 
+0

'(. {4}).' Намного короче :) – TheLostMind

+0

@TheLostMind Я считаю, что вы согласны со мной, что в этом случае не имеет значения, если мы match by '(....).' или '(. {4}).'. ;-) Или вы имели в виду что-то еще, что я упускаю из виду. (Возможно, между нашими сообщениями было несколько совпадений.) – SubOptimal

+0

Nope. Ваше регулярное выражение выглядит хорошо. Я просто пытался * укоротить * это :) – TheLostMind

Смежные вопросы