2016-10-26 18 views
-2
import java.util.Scanner; 
public class KBstrings1 
{ 
    public static void main (String []args) 
    { 
     Scanner scan=new Scanner(System.in); 
     String s1= scan.nextLine(); 
     int num=0; 

     for(int i=0; i<s1.length();i++) 
     { 
      if(s1.charAt(i)=='a'){ 
      num++;} 
      i++; 
     } 

     if(num>3) 
     { 
      System.out.println(s1.replace('a','@')); 
     } 
     else 
     { 
      System.out.println(s1.replace('a','#')); 
     } 

    } 

} 

Я хочу создать программу, которая принимает пользовательский ввод в предложении и заменяет все «а» символы с «#», если есть 3 или меньше случаев «а», и заменить 'a' с '@', если есть более трех экземпляров. Я попытался использовать предложение «Информатика - это не больше, чем компьютеры, чем астрономия о телескопах». но мой вывод заменил «a» на «#», когда он должен был заменить его на «@». Я делаю весь свой код в JCreator.Замена символов в строке

+1

Потому что приращение I в петле в два раза, таким образом, он пропускает некоторые. Избавьтесь от i ++ – Li357

+0

, когда u уже меняет значение «i» в for-statement, нет необходимости делать это позже. –

ответ

3

Вы увеличиваете i в два раза.

for(int i=0; i<s1.length();i++)

и

i++;

+0

Вау, я так тупой. Спасибо! –

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