2015-04-07 3 views
0

Как распечатать позиции символа, включая позиции между ними, в строке без использования встроенных функций?Распечатайте позиции символа, включая позиции пробела между ними, в строке

Например: пусть входная строка будет "я люблю свою Индию"

вход обугленного = 'я'

выход должен быть: позиции 'я' являются: 0 10 13

я попытался это:

String str="i love my india"; 
    char c='i'; 
    char ch[]=str.toCharArray(); 

    int pos=0; 
    for(int i=0;i<str.length();i++) 
    { 
     if(ch[i]==c) 
     { 
      System.out.print(pos+" "); 
     } 
     pos++; 
    } 

я получил выход для выше логики, но вэнь я пытаюсь использовать класс сканера, вывод неправильно: что случилось с ниже код?

public static void main(String[] args) 
{ 
    Scanner sc1=new Scanner(System.in); 
    System.out.println("enter the string:"); 
    String str=sc1.next(); 
    System.out.println("---------------------------"); 
    Scanner sc2=new Scanner(System.in); 
    System.out.println("enter the character:"); 
    char c=sc2.next().charAt(0); 

    char ch[]=str.toCharArray(); 

    int pos=0; 
    for(int i=0;i<str.length();i++) 
    { 
     if(ch[i]==c) 
     { 
      System.out.print(pos+" "); 
     } 
     pos++; 
    } 
} 
+1

, пожалуйста, определите набор функций встроенной функции –

+0

@TheLostMind yep, удалено, что c: – Rod

+0

, так как оба ответа внизу заменят следующей следующей строкой, и это работает – virusivv

ответ

0

Использование scanner.nextLine(), который считывает всю строку вместо scanner.next(), который читает только первое слово. распечатайте значение str и посмотрите, что он содержит :)

Далее вам нужен только 1 сканер. Удалить Scanner sc2=new Scanner(System.in); Используйте sc1 вместо sc2

0

Только заменить String str = sc1.next(); по String str = sc1.nextLine(); это сработает. PLZ попробовать.

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