2016-05-30 598 views
-3

您好同事,我需要一些关于学校作业文本的帮助。无法解析的类型:void无法转换为字符串

有了这个文本,我得到错误信息:不可编译的源代码 - 不兼容的类型:无效不能转换为java.lang.String

我的本意是,该方案将冒了一句,然后算量元音和辅音,并在对话窗口中显示它们。

我很新的编程所以答案很可能是为大家十分明显,但帮助将是非常赞赏:d

所以要清楚,我的问题如下。我怎样才能解决无效的字符串错误?

public static void main (String args[]) { 

    String string1= JOptionPane.showInputDialog("Write a sentence."); 
    int count = 0; 
    int vowels = 0; 
    int consonants = 0; 

    for (int i = 0; i <string1.charAt(0); i++) { 
      char ch = string1.charAt(i); 
      if (ch == 'a' || ch == 'e' || ch == 'i' || 
          ch == 'o' || ch == 'u') 
      { 
        vowels++; 
      } 
      else 
      { 
        consonants++; 
      } 
      String finished= JOptionPane.showMessageDialog(null,"You have written " +vowels+ "vowels and you have written " +consonants+ "consonants"); 
    } 
} 
+0

错误告诉你什么? – wero

+2

我相信你的意思是'我

+1

错误应该告诉行号在哪里发生。转到该行,查看[每个方法返回的内容](https://docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html#showMessageDialog%28java.awt.Component,%20java .lang.Object%29),以及你试图用它做什么。你会很快发现错误。 – resueman

回答

2

如果你使用任何IDE,这条线会在你

String finished= JOptionPane.showMessageDialog 

因为showMessageDialog抱怨不返回任何东西,这是一个无效的方法,所以没有完成字符串从获得它只是显示一个弹出窗口

2
String finished= JOptionPane.showMessageDialog(...) 

这是你的问题。

public static void showMessageDialog(...) 

如您所见,showMessageDialog返回类型的方法为void。

删除“String finished =”,它会起作用。

但是。由于其他错误,它不会按预期工作。在for循环中,条件为

i < string1.charAt(0) 

是错误的。

但即使解决该问题,它也无法正常工作。您应该拨打

JOptionPane.showMessageDialog(...) 

在循环之外,以便它只显示一次。

即使您修复了全部这些错误,考虑到一个字符可能不是元音或辅音,它仍然无法正常工作。或者那些字母可以是大写字母。

相关问题