- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为我的 Java 程序获取一个随机数,但没有任何反应,当我运行该程序时我得到一个 java.lang.NullPointerException ......这是我获取随机 int 的代码部分,我之后将提供完整的代码。在此先感谢您的帮助!!!
try {
PrintStream oFile = new PrintStream("Cipher.txt");
//i get the random number right below here...
rot = random.nextInt(5) + 1;
scan = new Scanner(message);
while (scan.hasNext()) {
cipherWord = scan.next();
l = cipherWord.length();
charScan = new Scanner(cipherWord);
for(int i = 0; i < cipherWord.length(); i++){
cipherChar = cipherWord.charAt(i);
if (cipherChar == 'a') {
cipherChar = 'b';
} else if (cipherChar == 'b') {
cipherChar = 'c';
} else if (cipherChar == 'c') {
cipherChar = 'd';
} else if (cipherChar == 'd') {
cipherChar = 'e';
} else if (cipherChar == 'e') {
cipherChar = 'f';
} else if (cipherChar == 'f') {
cipherChar = 'g';
} else if (cipherChar == 'g') {
cipherChar = 'h';
} else if (cipherChar == 'h') {
cipherChar = 'i';
} else if (cipherChar == 'i') {
cipherChar = 'j';
} else if (cipherChar == 'j') {
cipherChar = 'k';
} else if (cipherChar == 'k') {
cipherChar = 'l';
} else if (cipherChar == 'l') {
cipherChar = 'm';
} else if (cipherChar == 'm') {
cipherChar = 'n';
} else if (cipherChar == 'n') {
cipherChar = 'o';
} else if (cipherChar == 'o') {
cipherChar = 'p';
} else if (cipherChar == 'p') {
cipherChar = 'q';
} else if (cipherChar == 'q') {
cipherChar = 'r';
} else if (cipherChar == 'r') {
cipherChar = 's';
} else if (cipherChar == 's') {
cipherChar = 't';
} else if (cipherChar == 't') {
cipherChar = 'u';
} else if (cipherChar == 'u') {
cipherChar = 'v';
} else if (cipherChar == 'v') {
cipherChar = 'w';
} else if (cipherChar == 'w') {
cipherChar = 'x';
} else if (cipherChar == 'x') {
cipherChar = 'y';
} else if (cipherChar == 'y') {
cipherChar = 'z';
} else if (cipherChar == 'z') {
cipherChar = 'a';
}
oFile.print(cipherChar);
}
oFile.print(" ");
}
oFile.close();
scan.close();
charScan.close();
}
catch(Exception ioe) {
System.out.println("\n*** Print to Cipher.txt Error ***\n" + ioe);
}
这是完整的程序代码...
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.util.Random;
import javax.swing.*;
import java.io.*;
public class CodeMaker {
public int rot;
public JScrollPane scrollArea;
public Random random;
public File Cipher;
public int l;
public File message;
public char cipherChar;
public String finalCipher;
public Scanner charScan;
public Scanner scan;
public String cipherWord;
public int z;
public int words;
public File cipherFile;
public int n;
public String cipher;
public JPanel panel;
public JButton saveButton;
public JTextArea textArea;
boolean create = true;
private JFrame frame;
public static void main (String[] args) {
CodeMaker gui = new CodeMaker();
gui.start();
}
private void start() {
frame = new JFrame("Project TrenchCoat: Cipher Creator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setBackground(Color.DARK_GRAY);
makeMenus();
makeContent();
frame.setVisible(true);
frame.setExtendedState(Frame.MAXIMIZED_BOTH);
}
private void makeMenus() {
JMenuBar menuBar;
menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
JMenu menu;
menu = new JMenu("File");
JMenuItem menuItem = new JMenuItem("New Cipher");
menuItem.addActionListener(new NewListener());
menuItem.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_N,
Event.CTRL_MASK));
menu.add(menuItem);
JMenuItem menuitem = new JMenuItem("Read Cipher");
menuitem.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_R,
Event.CTRL_MASK));
menu.add(menuitem);
menu.addSeparator();
menuItem = new JMenuItem("Exit");
menuItem.addActionListener(new ExitListener());
menuItem.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_Q,
Event.CTRL_MASK));
menu.add(menuItem);
menuBar.add(menu);
JMenu helpMenu = new JMenu("Help");
JMenuItem helpItem = new JMenuItem("Help");
menuItem.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_H,
Event.CTRL_MASK));
helpMenu.add(helpItem);
menuBar.add(helpMenu);
JMenu aboutMenu = new JMenu("About");
JMenuItem aboutItem = new JMenuItem("About");
menuItem.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_A,
Event.CTRL_MASK));
aboutMenu.add(aboutItem);
menuBar.add(aboutMenu);
}
private void makeContent() {
Container contentPane = frame.getContentPane();
contentPane.setLayout(new BorderLayout());
JLabel label = new JLabel("Click a button to use its function");
label.setForeground(Color.white);
label.setFont(new Font("Lucida Console", Font.PLAIN, 14));
contentPane.add(label, BorderLayout.NORTH);
panel = new JPanel();
panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
panel.setBackground(Color.DARK_GRAY);
JButton createButton = new JButton("Create Cipher");
createButton.addActionListener(new NewListener());
createButton.setBackground(Color.DARK_GRAY);
createButton.setFont(new Font("Lucida Console", Font.PLAIN, 14));
createButton.setForeground(Color.green);
panel.add(createButton);
JButton readButton = new JButton("Read Cipher");
readButton.addActionListener(new ReadListener());
readButton.setBackground(Color.DARK_GRAY);
readButton.setFont(new Font("Lucida Console", Font.PLAIN, 14));
readButton.setForeground(Color.green);
panel.add(readButton);
JButton aboutButton = new JButton("About Cipher Creator.......");
aboutButton.setBackground(Color.DARK_GRAY);
aboutButton.setFont(new Font("Lucida Console", Font.PLAIN, 14));
aboutButton.setForeground(Color.green);
panel.add(aboutButton);
JButton helpButton = new JButton("Help");
helpButton.setBackground(Color.DARK_GRAY);
helpButton.setFont(new Font("Lucida Console", Font.PLAIN, 14));
helpButton.setForeground(Color.green);
panel.add(helpButton);
frame.add(panel, BorderLayout.WEST);
JButton saveButton = new JButton("Save Cipher");
saveButton.addActionListener(new SaveListener());
saveButton.setBackground(Color.DARK_GRAY);
saveButton.setFont(new Font("Lucida Console", Font.PLAIN, 14));
saveButton.setForeground(Color.green);
panel.add(saveButton);
textArea = new JTextArea(0,0);
scrollArea = new JScrollPane(textArea);
scrollArea.setVerticalScrollBarPolicy(
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollArea.setHorizontalScrollBarPolicy(
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
panel.add(scrollArea);
contentPane.add(textArea, BorderLayout.CENTER);
}
private class NewListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
textArea.setText("");
textArea.append("Type your message to be ciphered below, then click 'Save Cipher'. Remember, everything in the text area will be in your message, so delete this line.\n");
}
}
private class SaveListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
createCipher();
}
}
private class ReadListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
textArea.setText("");
JFileChooser fc = new JFileChooser();
fc.showOpenDialog(frame);
cipherFile = fc.getSelectedFile();
if (cipherFile == null) {
return;
}
readCipher();
}
}
private void readCipher() {
try
{
Scanner scan = new Scanner(cipherFile);
while (scan.hasNext())
{
String cipher = scan.next();
textArea.append(cipher);
textArea.append("\n");
}
scan.close();
}
catch(IOException e)
{
JOptionPane.showMessageDialog(frame,
"I/O error in file\n\n " +
cipherFile.getName() +
"\n\nThis program will close",
"I/O Error",
JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
}
private void createCipher() {
try
{
cipher = textArea.getText();
PrintStream oFile = new PrintStream("Message.txt");
message = new File("Message.txt");
oFile.print(cipher);
oFile.close();
}
catch(IOException ioe)
{
System.out.println("\n*** I/O Error ***\n" + ioe);
}
try {
PrintStream oFile = new PrintStream("Cipher.txt");
rot = random.nextInt(5) + 1;
scan = new Scanner(message);
while (scan.hasNext()) {
cipherWord = scan.next();
l = cipherWord.length();
charScan = new Scanner(cipherWord);
for(int i = 0; i < cipherWord.length(); i++){
cipherChar = cipherWord.charAt(i);
if (cipherChar == 'a') {
cipherChar = 'b';
} else if (cipherChar == 'b') {
cipherChar = 'c';
} else if (cipherChar == 'c') {
cipherChar = 'd';
} else if (cipherChar == 'd') {
cipherChar = 'e';
} else if (cipherChar == 'e') {
cipherChar = 'f';
} else if (cipherChar == 'f') {
cipherChar = 'g';
} else if (cipherChar == 'g') {
cipherChar = 'h';
} else if (cipherChar == 'h') {
cipherChar = 'i';
} else if (cipherChar == 'i') {
cipherChar = 'j';
} else if (cipherChar == 'j') {
cipherChar = 'k';
} else if (cipherChar == 'k') {
cipherChar = 'l';
} else if (cipherChar == 'l') {
cipherChar = 'm';
} else if (cipherChar == 'm') {
cipherChar = 'n';
} else if (cipherChar == 'n') {
cipherChar = 'o';
} else if (cipherChar == 'o') {
cipherChar = 'p';
} else if (cipherChar == 'p') {
cipherChar = 'q';
} else if (cipherChar == 'q') {
cipherChar = 'r';
} else if (cipherChar == 'r') {
cipherChar = 's';
} else if (cipherChar == 's') {
cipherChar = 't';
} else if (cipherChar == 't') {
cipherChar = 'u';
} else if (cipherChar == 'u') {
cipherChar = 'v';
} else if (cipherChar == 'v') {
cipherChar = 'w';
} else if (cipherChar == 'w') {
cipherChar = 'x';
} else if (cipherChar == 'x') {
cipherChar = 'y';
} else if (cipherChar == 'y') {
cipherChar = 'z';
} else if (cipherChar == 'z') {
cipherChar = 'a';
}
oFile.print(cipherChar);
}
oFile.print(" ");
}
oFile.close();
scan.close();
charScan.close();
}
catch(Exception ioe) {
System.out.println("\n*** Print to Cipher.txt Error ***\n" + ioe);
}
viewCipher();
}
private void viewCipher() {
textArea.append("\nBelow is the cipher you created.\n Now you can copy/paste in and email it to the desired recipient.");
try
{
File Cipher = new File("Cipher.txt");
Scanner scan = new Scanner(Cipher);
textArea.append("\n");
while (scan.hasNextLine())
{
String cipher = scan.nextLine();
textArea.append(cipher);
textArea.append("\n");
}
}
catch(IOException e)
{
JOptionPane.showMessageDialog(frame,
"I/O error in file\n\n " +
cipherFile.getName() +
"\n\nThis program will close",
"I/O Error",
JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
}
private class ExitListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}
}
最佳答案
您的随机生成器 random 未初始化。对其进行初始化。
random = new Random();
顺便说一句,下次把问题一分为二,只发布有问题的部分。
关于java - 获取随机数时出现 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18243484/
在 Tomcat 6/Ubuntu 12.04 上启动 Grails 2.1.0 应用程序时出现以下错误。 Error 500 - Internal Server Error. groovy.lang
在运行 Storm 拓扑时,我收到此错误。拓扑完美运行 5 分钟,没有任何错误,然后失败。我正在使用 Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS as 300 sec i
我有一个 jsp 代码在其中一台机器上运行良好。但是当我复制到另一台机器时,我得到了这个 no such method found 异常。我是 Spring 的新手。有人可以解释我错过了什么吗? 以下
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我的代码在下面给出了一个错误; Exception in thread "main" java.lang.NoSuchMethodError: com/myApp/Client.cypherCBC(L
我正在尝试一个 Restful web 服务示例,所以当我要访问 url 时,我遇到了异常 java.lang.NoSuchMethodError: jersey.repackaged.com.goo
我正在将一个 Spring web 项目转换为一个 Maven 项目,但我收到了这个错误: java.lang.NoSuchMethodError: org.jboss.logging.Logger.
在我的项目中,我有一个像这样的枚举: public enum MyEnum { FIRST(1), SECOND(2); private int value; private MyEnum(int v
我创建了这个简单的示例,用于读取 Linux 正常运行时间: public String getMachineUptime() throws IOException { String[] di
我正在使用 Eclipse,并且正在使用 Java。我的目标是使用 bogoSort 方法对 vector 进行排序在一个 vector (vectorExample)中适应我的 vector 类型,
我正在运行以下查询。它显示一条错误消息。如何解决这个错误? ListrouteList=null; List companyList = session.createS
我有以下模型类: @Entity @Table(name="user_content") @org.hibernate.annotations.NamedQueries({ @org.
我有那个错误。这是我的代码: GmailSettingsService service = new GmailSettingsService(APPLICATION_NAME, DOMAIN_NAME
实际上我在执行我的java程序时遇到了下面提到的错误 Exception in thread "pool-1-thread-1" java.lang.ClassCastException: jav
java.lang.ClassCastException: java.lang.Float cannot be cast to java.lang.String 我在以下代码中遇到此异常: Strin
我正在尝试从 linkedhashset 中检索随机元素。下面是我的代码,但它每次都给我异常。 private static void generateRandomUserId(Set userIds
我已经完成了 Android 中的代码: List spinnerArray = new ArrayList(); for (int i = 0; i item = (LinkedTreeMap)
这个问题已经有答案了: Explanation of ClassCastException in Java (12 个回答) 已关闭 6 年前。 我已经编写了 java 到 Json 的代码,同时从页
这个问题在这里已经有了答案: ClassCastException java.lang.Long cannot be cast to clojure.lang.IFn (4 个答案) 关闭 6 年前
我在运行时遇到问题来编译这段代码,这给我一个错误,java.lang.Integer 无法转换为 Java.lang.Double。如果有人帮助我更正此代码,我将非常高兴 double x; pu
我是一名优秀的程序员,十分优秀!