2013-10-10 2 views
1

В настоящее время я выполняю упражнение (не домашнее задание, прежде чем кто-либо выдает), и я застрял в заключительной части вопроса.Ограничительный диапазон строк строки String to Alphabet

Возникает вопрос:

Write a program which will input a String from the keyboard, output the number of 
seperate words, where a word is one or more characters seperated by spaces. Your 
program should only count words as groups of characters in the rang A..Z and a..z 

Я не могу сделать первой части не проблема, как вы можете видеть мой код:

импорт java.util.Scanner;

public class Exercise10 { 

public static void main(String[] args) { 
    String input; 
    int counter = 0; 
    Scanner keyboard = new Scanner(System.in); 

    System.out.println("Please enter your text: "); 
    input = keyboard.nextLine(); 

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

     if(input.charAt(i) == ' '){ 
      counter++; 
      } 
    } 

    System.out.println(counter + 1); 
    keyboard.close(); 

    } 
} 

Однако та часть, которая сбивает с толку меня это:

Your program should only count words as groups of characters in the rang A..Z and 
a..z 

Что я должен делать в этом случае?

+1

вам нужно для поиска регулярных выражений – tom

+1

Вашего способом ведения I t неверно. Счетные пространства - это не то же самое, что подсчет слов. Что делать, если пользователь поставит слово "" "'? – Pshemo

+0

Не изучили регулярное выражение, поэтому я бы предпочел не использовать его, пока нас не научили этому, поскольку я не хочу смущать себя. – user2830571

ответ

2

Я не дам вам полного ответа, но вот два намека.

Вместо подсчет пробела посмотреть на расщеплении строки и пробегает по каждому элементу из раскола:

Documentation

После того как вы String раскола и можете перебирать элементы, перебирать каждый символ в каждом элемент, чтобы проверить, если это буквенное:

Hint

+0

Спасибо, но, как я уже говорил, я не хочу использовать Regex на данный момент. – user2830571

+0

@ user2830571 Ни одно из этих решений не использует регулярное выражение. Какая часть, по вашему мнению, требует регулярного выражения? Я могу объяснить больше, когда узнаю ваши предположения. –

+0

split string? Я посмотрел на него на сайте оракула, и он упомянул о регулярном выражении ... – user2830571

2

Я считаю, что не следует рассматривать отдельные знаки пунктуации как слова. Таким образом, фраза one, two, three ! имела бы 3 слова, даже если ! разделяется пробелом.

Разделить строку на пробелы. Для каждого токена проверьте символы; если хотя бы один из них находится в диапазоне a..z или A..Z, счетчик приращений и перейти к следующему токену.

+0

Спасибо, но, как я уже говорил, я не хочу используйте Regex на данный момент – user2830571

+1

Реджикса не существует. Все, что вам нужно сделать, это 'phrase.split (" ")', и вы получаете токены. –

+0

о, я думал, что он использовал regex ... – user2830571