2014-11-25 49 views
0

我有我的程序有问题,我使用if-else语句如何纠正的if else语句

在我的计划,我想指望一个字符串的元音和辅音。我已经知道如何去做,我的问题是我想添加一个“错误”消息,如果用户输入一个非字符串,它会显示错误框。

“尝试运行该程序,用户将输入一个”字符串“,如果用户按”排序“它将 计数元音和辅音,我需要的是如果用户不会输入”字符串“例如,只要它不是一个字符串,它会显示一个错误框双或INT ...等

/** 
* 
* @author Patrick 
*/ 

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.util.*; 
public class VowelandConsonant extends JFrame{ 
    private JLabel stringl, resultl,resultl1; 
    private JTextField stringtf, resulttf,resulttf1; 
    private JButton cb,eb; 
    private CButtonHandler cHandler; 
    private EButtonHandler eHandler; 



public VowelandConsonant(){ 

    stringl=new JLabel("Enter String:",SwingConstants.CENTER); 
    resultl=new JLabel("Vowel:",SwingConstants.CENTER); 
    resultl1=new JLabel("Consonants:",SwingConstants.CENTER); 

    stringtf=new JTextField(10); 
    resulttf=new JTextField(10); 
    resulttf1=new JTextField(10); 

     eb=new JButton("Exit"); 
     eHandler= new EButtonHandler(); 
     eb.addActionListener(eHandler); 

     cb=new JButton("Sort"); 
     cHandler= new CButtonHandler(); 
     cb.addActionListener(cHandler); 


     setTitle("Vowels and Consonants"); 
     Container p=getContentPane(); 
     p.setLayout(new GridLayout(7,2)); 

     p.add(stringl); 
     p.add(stringtf); 
     p.add(resultl); 
     p.add(resulttf); 
     p.add(resultl1); 
     p.add(resulttf1); 
     p.add(cb); 
     p.add(eb); 

     setSize(500,400); 
     setVisible(true); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
} 
     private class CButtonHandler implements ActionListener{ 
      public void actionPerformed(ActionEvent e){ 


       String string1; 

       string1 = stringtf.getText(); 
       string1 = string1.toLowerCase(); 
       int vowels = 0; 
       int consonants = 0; 
       for (String retval: string1.split(" ")){ 
        for (int i = 0; i < retval.length(); i++) 
       { 
         char ch = retval.charAt(i); 
         if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') 
         { 
           vowels++; 
         } 
         else if(!string1.equals(string1)){ 
          String a="Not a String Please try again ^_^"; 
          JOptionPane.showMessageDialog(null,a,"ERROR",JOptionPane.ERROR_MESSAGE); 
         } 

         else 
         { 
           consonants++; 
         } 



       } 
      resulttf.setText(""+vowels); 
      resulttf1.setText(""+consonants); 
     vowels=0; 
     consonants=0; 
     } 


      } 
     } 

      private class EButtonHandler implements ActionListener{ 
      public void actionPerformed(ActionEvent e){ 
       System.exit(0); 
      }} 
      public static void main(String[]args){ 
       VowelandConsonant a=new VowelandConsonant(); 
      }} 
+2

你如何定义“非字符串”? – 2014-11-25 14:36:50

+0

什么是stringtf? – brso05 2014-11-25 14:37:25

+0

指定一些输入和所需的输出场景 – user2408578 2014-11-25 14:38:23

回答

0

你能试试吗?

for (String retval: string1.split(" ")){ 
      if(!retval.matches("[a-zA-Z]+")){ 
        String a="Not a String Please try again ^_^"; 
        JOptionPane.showMessageDialog(null,a,"ERROR",JOptionPane.ERROR_MESSAGE); 
      } 
      for (int i = 0; i < retval.length(); i++) 
      { 
        char ch = retval.charAt(i); 
        if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') 
        { 
          vowels++; 
        } else 
        { 
          consonants++; 
        } 

      } 
    } 

检查非字符串,如:

   else if(!retval.matches("[a-zA-Z]+")){ 
        String a="Not a String Please try again ^_^"; 
        JOptionPane.showMessageDialog(null,a,"ERROR",JOptionPane.ERROR_MESSAGE); 
       } 
0

你可以首先检查它是否是一个信煤焦代码:

if(((int)ch >= 65 && (int)ch <= 90) || ((int)ch >= 97 && (int)ch <= 122)) 
{ 
    if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' || ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') 
    { 
     vowels++; 
    } 
    else 
    { 
     consonants++; 
    } 
} 
else 
{ 
    String a="Not a String Please try again ^_^"; 
    JOptionPane.showMessageDialog(null,a,"ERROR",JOptionPane.ERROR_MESSAGE); 
} 

这将检查它是否是AZ或az,如果是,则检查它是否是元音或辅音。

0

string1被定义为一个字符串,所以它永远是一个字符串

你想要做的是用正则表达式验证用户的输入。你只希望允许字母字符,但没有数字

if (string1.matches("[a-zA-Z]+")) { 
    //good input 
} 
else { 
    //bad input 
} 

可以允许使用正则表达式的空间[A-ZA-Z] *