gpt4 book ai didi

java - 如何修复空指针异常?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:15 25 4
gpt4 key购买 nike

我正在尝试计算字符串中元音的数量。问题是它编译正确,但是当我运行它时,命令窗口显示“Exception in thread 'main' java.lang.NullPointerException at CountVowels.main(CountVowels.java :25)

import javax.swing.JOptionPane;

public class CountVowels
{
public static void main(String[] args)
{
String thingy = JOptionPane.showInputDialog("Please enter a sentence, and I will count the vowels.");
int count = 0;

char[] chars = new char[thingy.length()];
String[] letters = new String[thingy.length()];

for(int i = 0; i < thingy.length(); ++i)
{
chars[i] = thingy.charAt(i);
}

for(int i = 0; i < letters.length; ++i)
{
letters[i].valueOf(chars[i]);
}

for(int i = 0; i < chars.length; ++i)
{
if(letters[i].equals("a") || letters[i].equals("e") || letters[i].equals("i") || letters[i].equals("o") || letters[i].equals("u"))
{
++count;
}
}
System.out.println("There are " + count + " vowels in the string + " + thingy);
}
}

这是什么原因造成的,我该如何解决它,以及如何防止它在未来再次发生?

第 25 行是我的 if 语句:

if(letters[i].equals("a") || letters[i].equals("e") || letters[i].equals("i") || letters[i].equals("o") || letters[i].equals("u"))
{
++count;
}

最佳答案

线

letters[i].valueOf(chars[i]);

什么都不做。如果你把它改成

letters[i] = String.valueOf(chars[i]);

您会将letters 中的所有元素设置为相应的字符。这应该可以修复您的 NullPointerException

您还可以通过使用一些正则表达式技巧来节省大量代码:

import javax.swing.JOptionPane;

public class CountVowels
{
public static void main(String[] args)
{
String input = JOptionPane.showInputDialog("Please enter a sentence, and I will count the vowels.");
String[] letters = input.split("(?<=.)(?=.)");

int count = 0;

for(int i = 0; i < letters.length; i++)
{
if(letters[i].matches("[aeiou]"))
{
count++;
}
}
System.out.println("There are " + count + " vowels in the string + " + input);
}
}

关于java - 如何修复空指针异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22790187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com