2017-01-25 9 views
0
public static void main(String[] args) 
{ 
    char ch; 

    ch = JOptionPane.showInputDialog("").charAt(0); 

    if (Character.isLetter(ch)) 
    { 
     System.out.println(Character.toUpperCase(ch)); 
    } 

    if (Character.isDigit(ch)) 
    { 
     Math.sqrt(ch); 
     System.out.println(ch); 
    } 

    if (Character.isWhitespace(ch)) 
    { 
     int code = ch; 
     System.out.println (code); 
    } 
} 

Если я вводил более одного символа, он распознает только первый символ. Как заставить программу видеть несколько символов, которые пользователь вводит в качестве символа?Прочитайте несколько символов в вводе символов и преобразуйте их в double

+1

'.charAt (0)' Вы говорите, что принимаете только первый символ. – litelite

+0

Как мне получить несколько символов? –

+0

Объявите 'ch' как строку и удалите' .charAt (0) '. Однако вам также нужно добавить цикл для повторения по каждому из полученных вами символов – litelite

ответ

0

Вы принимаете только первый character с этим: -

ch = JOptionPane.showInputDialog("").charAt(0); 

charAt(0) дает character с индексом 0, который всегда первый символ.

Если вы хотите, чтобы относиться к своим input в целом, а не только первый символ, попробуйте использовать строку следующим образом

String s = JOptionPane.showInputDialog(""); 

отметить также, что ваш Charater.isLetter(ch) не будет работать сейчас, как вы не можете сделайте это с помощью String. Тем не менее, вы можете конвертировать все String в UpperCase, если хотите. Кроме того, вы не можете легко проверить, является ли String действительным Double или нет. Он требует exception handling и может быть запутанным. Я все равно его включаю, поэтому, если вы в замешательстве, не стесняйтесь спрашивать.

Заключительная программа выглядит следующим образом: -

String s; 
s = JOptionPane.showInputDialog(""); 
try{ 
    double d = Double.parseDouble(s); 
}catch(Exception e){ 
    //Not a Double as it comes inside catch 
    //Therefore String must be empty or contain Characters 

    //Checking for Empty 

    if(s.trim().length()<1){ 
    //String is empty 
    //Do what you want 
    System.out.println("String is whitespace"); 
    }else { 
     //String must contain Characters. 
     System.out.println(s.toUpperCase()); 
    } 
} 

Пожалуйста, спросите, если вы застряли на что-нибудь.

+0

Спасибо за помощь! Очень признателен! @Shashwat –