尝试使用字符串标记器读取状态名时出现错误
error when Trying to read State Names using string tokenizer
此程序允许用户计算输入销售额并计算每个州的销售税。程序在读取双字州(例如New Jersey)时出现错误。我需要带零件的直升机。
import java.text.DecimalFormat;
import java.util.*;
import java.io.*;
import java.lang.reflect.Array;
import java.nio.CharBuffer;
import java.awt.*;
//import java.awt.event.*;
import javax.lang.model.type.ArrayType;
import javax.swing.*;
import javax.swing.event.*;
public class PJ5 extends JFrame implements ListSelectionListener
{String []States = new String[100];
double []statetax = new double[100];
double sales;
JPanel p1;
JList StateList;
JTextField salesField;
private JTextField taxField;
public static void main(String []args)
{
PJ5 x = new PJ5();
x.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
x.setTitle("Sales tax calculator");
x.setSize(350, 250);
x.setVisible(true);
} // main
public PJ5() // constructor
{
String s;
StringTokenizer st;
int k=0;
try
{
BufferedReader inFile = new BufferedReader(new FileReader("C:''Users''Owner''Documents''taxrates.txt"));
while ((s= inFile.readLine()) != null)
{
st = new StringTokenizer(s);
States[k]=(st.nextToken());
statetax[k] = Double.valueOf(st.nextToken());
++k;
} // while not EOF
inFile.close();
} catch (Exception e) { System.err.println(e); }
JPanel p1 =new JPanel();
p1.setLayout(new GridLayout(2,1));
p1.add(new JLabel("Sales amount:"));
salesField= new JTextField(5);
salesField.setEditable(true);
p1.add(salesField);
p1.add(new JLabel("tax:"));
taxField= new JTextField(4);
taxField.setEditable(false);
p1.add(taxField);
add(p1,BorderLayout.NORTH);
pack();
setVisible(true);
JPanel p = new JPanel();
StateList = new JList(States); // create a JList object
StateList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane sp = new JScrollPane(StateList); // adding scrolling capability
p.add(sp);
getContentPane().add(p, BorderLayout.SOUTH);
// Event registration
StateList.addListSelectionListener(this);
} // constructor
// Event handling
public void valueChanged(ListSelectionEvent event)
{
DecimalFormat dollar = new DecimalFormat("0.00");
double tax;
sales=Double.parseDouble(salesField.getText());
tax=sales* (statetax[StateList.getSelectedIndex()]/100);
taxField.setText("$"+dollar.format(tax));
} // valueChanged
}
这是各州税率的文本文件。
Alabama 4.0
Alaska 0.
Arizona 5.6
Arkansas 6.0
California 8.25
Colorado 2.9
Connecticut 6.0
Delaware 2.07
Florida 6.0
Georgia 4.0
Hawaii 4.0
Idaho 6.0
Illinois 6.25
Indiana 7.0
Iowa 6.0
Kansas 5.3
Kentucky 6.0
Louisian, 4.0
Maine 5.0
Maryland 6.0
Massachusetts 6.25
Michigan 6.0
Minnesota 6.875
Mississippi 7.0
Missouri 4.225
Montana 0.
Nebraska 5.5
Nevada 6.85
New Hampshire 0.0
New Jersey 7.0
New Mexico 5.375
New York 4.0
North Carolina 4.5
North Dakota 5.0
Ohio 5.5
Oklahoma 4.5
Oregon 0.
Pennsylvania 6.0
Rhode Island 7.0
South Carolina 6.0
South Dakota 4.0
Tennessee 7.0
Texas 6.25
Utah 5.95
Vermont 6.0
Virginia 5.0
West Virginia 6.0
Wisconsin 5.0
Washington 6.5
Washington DC 5.75
Wyoming 4.0
这是因为,标记器将New解析为字符串,然后下一个代码将Hampshire解析为double,您可能需要重构您的代码
相关文章:
- 相位器状态未捕获参考错误
- 未捕获的类型错误:无法读取属性'状态'在react中为null
- 使用Twitter API进行推文时出现重复状态错误
- Angularjs$状态错误
- 历史.推送状态错误,我不知道为什么
- indexeddb 调用堆栈的无效状态错误
- YDN:Firefox 版本 44 上出现消息无效状态错误的错误
- 许多画布对象会导致“无效状态错误:尝试使用不可用或不再可用的对象”
- 在angular js promise中未获取状态错误代码
- 使用Angular.js ui路由器获取状态错误
- 在IE11中设置xmlHttp响应类型为msxml-document会抛出无效状态错误
- Angular状态提供程序抛出的问题无法解决状态错误
- 回发时无效的视图状态错误
- 我如何在React JS中处理状态错误
- 使用FileReader时,chrome浏览器的无效状态错误
- 无法解决ui-route中的状态错误
- 收到非活动状态错误- JQuery
- I'm向节点服务器发送了一个文件,它给了我404状态错误
- 未捕获的无效状态错误:无法在“WebSocket”上执行“发送”:仍处于“正在连接”状态
- 没有例外,但状态错误,而做jquery ajax