2016-10-17 1 views
-3

Я надеялся, что ТАК может помочь мне в моей проблеме. У меня есть этот код:Позиция символа java в строке

public static void main(String[] args) { 
    Scanner scanner=new Scanner(System.in); 

    System.out.print("Enter a string:\t"); 
    String word = scanner.nextLine(); 

    System.out.print("Enter a character:\t"); 
    String character = scanner.nextLine(); 

    char charVar = 0; 
    if (character.length() > 1) { 
     System.err.println("Please input only one character."); 
    } else { 
     charVar = character.charAt(0); 
    } 

    int count = 0; 
    for (char x : word.toCharArray()) { 
     if (x == charVar) { 
      count++; 
     } 
    } 

    System.out.println("Character " + charVar + " appears " + count + 
         (count == 1 ? " time" : " times")); 
} 

Так что этот код просит пользователя ввести строку, то она предлагает пользователю ввести символ, сколько раз появляется программа будет сообщить пользователю, что конкретный характер. Моя проблема в том, что мне нужно преобразовать этот код, чтобы он по-прежнему запрашивал у пользователя строку, но не спрашивал персонажа. Вместо этого он попросит пользователя ввести номер. Затем программа покажет, какой символ находится в этой позиции в строке. Пример: скажем, что они вводят «string», а затем 2 для номера, программа отобразит символ «r». Поэтому мой вопрос в основном, если кто-то может дать мне представление о том, как это сделать. Любая помощь будет большой.

+0

Ну, вы могли бы начать не игнорируя [документацию] (http://docs.oracle.com/javase/8/docs/api/java/lang/String.html) больше – Tom

+1

При размещении [ код] (http://stackoverflow.com/a/39863009/1248974), взятый из других вопросов, просьба указать, где вы получили код, или, лучше, включить только * ваш * код. – davedwards

+0

Используйте scanner.nextInt() для получения целых чисел, а затем используйте String.charAt (int), чтобы получить символ в этом индексе из указанной строки. – Brunaldo

ответ

0
public static void main(String[] args) { 
     Scanner scanner=new Scanner(System.in); 

     System.out.print("Enter a string:\t"); 
     String word = scanner.nextLine(); 

     System.out.print("Enter an integer:\t"); 
     int index = scanner.nextInt(); 

     System.out.println("Character at position " + index + ": " + word.charAt(index)); 
    } 
+0

Благодарим вас за ответ. совершенно не связанный вопрос, насколько велика проблема, если вы никогда не закрываете свой сканер в программе? –

+0

В кратком, простом примере, например, здесь, который читает только пользовательский ввод, это не проблема, если только мы не будем читать больше ввода. Конечно, если мы открываем и читаем файлы или другие ресурсы, это может стать проблемой (развращение файлов и т. Д.). Однако нет необходимости закрывать его после использования, среда Java автоматически закрывает его при завершении программы. – davedwards

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

  • Нет связанных вопросов^_^