Я получаю некоторые ошибки, когда запускаю свой Java-код. Он компилируется нормально, но я получаю ошибки времени выполнения с исключениями. Это код:
import java.io.*;
class display {
private int charNumber;
private char[] currentArray;
public display() {
charNumber = 0;
}
public void dispText(String text, long speed, long wait) {
while(currentArray[charNumber] != '~') {
currentArray = text.toCharArray();
System.out.print(currentArray[charNumber]);
try {
Thread.sleep(speed);
} catch (NullPointerException e) {
System.out.println("Error in the Thread process:\n" + e);
} catch (InterruptedException e) {
System.out.println("Error in the Thread process:\n" + e);
}
charNumber++;
}
charNumber = 0;
try {
Thread.sleep(wait);
} catch (NullPointerException e) {
System.out.println("Error in the Thread process:\n" + e);
} catch (InterruptedException e) {
System.out.println("Error in the Thread process:\n" + e);
}
}
public void resetCharNumber() {
charNumber = 0;
}
}
class Main {
public static void main (String[] args) throws Exception {
//Make sure to include a '~' at the end of every String.
String start = "Hey, is this thing on?~";
String hello = "Hello, World!~";
display d = new display();
d.dispText(start, 200, 2000);
d.dispText(hello, 200, 2000);
System.out.println("\nDone!");
}
}
void dispText
принимает строку для отображения текста с System.out.print
, длинную скорость, чтобы определить, сколько времени проходит каждый раз, когда отображается символ (например, пишущая машинка), и долгое ожидание, чтобы определить, сколько времени проходит до выполнения следующего процесса. dispText
берет текст String, преобразует его в массив символов с помощью text.toCharArray();
, а затем переходит в цикл while, где он отображает один символ за прогон, затем ждет время, указанное скоростью, а затем переходит к следующему символу. Он делает это до тех пор, пока не достигнет последнего символа ('~'), который включается как последний символ в строки, передаваемые в текст. Затем он переходит на следующую строку. Затем в main создается экземпляр класса отображения с именем 'd', и d дважды выполняет dispText.
Это ошибка времени выполнения, которую я получаю при запуске:
Ошибка выполнения: Исключение в потоке "main" java.lang.NullPointerException
в display.dispText(Main.java:14)
в Main.main(Main.java:48)