2013-12-13 2 views
1

Я могу отделить слова в предложении, но я не знаю, как проверить, содержит ли слово символ, отличный от буквы. Вам не нужно публиковать ответ только на каком-то материале, который я мог бы прочитать, чтобы помочь мне.Как проверить, все ли буквы в строке являются буквами?

public static void main(String args []) 
{ 
    String sentance; 
    String word; 
    int index = 1; 

    System.out.println("Enter sentance please"); 
    sentance = EasyIn.getString(); 

    String[] words = sentance.split(" ");  

    for (String ss : words) 
    { 
     System.out.println("Word " + index + " is " + ss); 
     index++; 
    }    
} 

ответ

3

Что я буду делать, это использовать String#matches и использовать регулярное выражение [a-zA-Z]+.

String hello = "Hello!"; 
String hello1 = "Hello"; 

System.out.println(hello.matches("[a-zA-Z]+")); // false 
System.out.println(hello1.matches("[a-zA-Z]+")); // true 

Другим решением является if (Character.isLetter(str.charAt(i)) внутри цикла.


Другим решением является чем-то вроде этого

String set = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
String word = "Hello!"; 

boolean notLetterFound; 
for (char c : word.toCharArray()){ // loop through string as character array 
    if (!set.contains(c)){   // if a character is not found in the set 
     notLetterfound = true; // make notLetterFound true and break the loop 
     break;      
    } 
} 

if (notLetterFound){ // notLetterFound is true, do something 
    // do something 
} 

Я предпочитаю первый ответ, хотя, используя String#matches

+0

. Посмотрите, что мне нужно проверить все слова в отдельности и посмотреть, есть ли у них символ, отличный от буквы, и вывод, будь то хорошее слово (содержит только буквы) или плохое слово (например, «Hell0» - это плохое слово) –

+0

В вашем цикле просто используйте 'if (ss.matches (" [a-zA-Z] + ")) {// do что-то}. –

+0

Если это соответствует, это хорошее слово –

0

Не уверен, если я понимаю ваш вопрос, но есть

Character.isAlpha (с);

Вы должны перебирать все символы в своей строке и проверять, являются ли они алфавитными (в классе символов есть другие методы isXxxxx).

+0

Если я войду "Спасибо за помощь geert3" было бы выход geert3 является плохое слово, потому что оно содержит число. –

+0

<тогда вам нужен метод isAlphanum(), который проверяет наличие альфа-или числовой цифры – geert3

0

Вы можете прокручивать символы в слове, вызывающем Character.isLetter(), или, может быть, проверить, соответствует ли оно регулярному выражению, например. [\w]* (это будет соответствовать слову, только если его содержимое - все символы).

-1

вы можете использовать массив charector, чтобы сделать это как ..

char [] a = ss.toCharArray();

Вы не можете получить charector в указателе.

с «словом» + индекс + «есть» + [индекс];

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