我的程序有问题,我在使用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();
}}
string1
被定义为一个字符串,所以它总是一个字符串
您要做的是使用正则表达式验证用户输入。您只想允许字母字符,但不允许数字
if (string1.matches("[a-zA-Z]+")) {
//good input
}
else {
//bad input
}
可以使用正则表达式[a-zA-Z]允许空格*
您可以先检查它是否是字符代码的字母:
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);
}
这将检查它是A-Z还是A-Z,如果是,然后检查它是元音还是辅音。
你能这样试试吗;
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);
}
我用R编写了以下代码,效果很好。但是,假设我必须对具有多个级别的因子变量应用类似的代码(
问题内容: 我正在上高中AP计算机科学课程。 我决定在我们的一个实验室里发表一个声明,只是为了玩弄,但是我遇到了这个错误。 我问了一个关于Stackoverflow 的问题,以找出如何正确执行它,并且我所做的完全如答案之一所示。我真的不明白为什么编译器想要一个语句(至少这是我假设的要求),我也不知道如何使用。似乎希望重新启动的部分是一个变量,但是重新启动只是将程序拉回到第10行的标签,以便用户可以
我正在尝试获取与登录用户在同一年级的同学列表。 我有这个功能 但我得到了错误: 原因:异常[EclipseLink-6069](Eclipse Persistence Services-2.5.0.V20130507-3FAAC2B):org.Eclipse.Persistence.exceptions.QueryException异常说明:此表达式中的字段[Rocnik.IdRocnik]在此上
我想用javascript/php实现法语、俄语等外语的拼写更正。对于英语拼写检查器,我可以使用编辑距离算法从英语词典中检索单词(词典是使用Trie构建的),并返回最频繁的单词。我还找到了关于这方面的文章,例如。http://stevehanov.ca/blog/index.php?id=114.我认为对于外语来说,同样的方法也是有用的。 我相信必须为不同的语言提供API,但我不想在我的应用程序中
我正在使用.exists()方法来确保文件不存在,如果存在,它会向文件添加一个数字。但是,使用原始文件名创建文件是不起作用的,并且在创建另一个文件时基本上覆盖了先前的文件名。 [1:47:40:359]已写入文件:myFileName1 [1:47:40:361]已写入文件:myFileName1
给定数据帧,如下所示 我想通过dplyr 基于< code>var的值添加一个col 。 基于以下逻辑。 如果或则,如果或则 一起使用,如下所示