给出方法/返回相关错误的 Java 程序。
Posted
技术标签:
【中文标题】给出方法/返回相关错误的 Java 程序。【英文标题】:Java Program giving Method/Return related errors. 【发布时间】:2017-11-06 19:15:12 【问题描述】:我正在做 Java 作业,它分为几个部分。我被困在第 2 部分。这并不是要成为家庭作业转储,我只是被困在第 2 部分,我将第 1 部分和第 3 部分包括在内。我非常感谢任何帮助或反馈。谢谢!
(1) 提示用户输入他们选择的字符串。将文本存储在字符串中。输出字符串。 (1分)
例如:
输入示例文本: 我们将继续探索太空。将会有更多的航天飞机航班和更多的航天飞机机组人员,是的,更多的志愿者、更多的平民、更多的太空教师。没有什么到此结束;我们的希望和旅程仍在继续!
您输入了:我们将继续我们的太空探索。将会有更多的航天飞机航班和更多的航天飞机机组人员,是的,更多的志愿者、更多的平民、更多的太空教师。没有什么到此结束;我们的希望和旅程仍在继续!
(2) 实现一个 printMenu() 方法,该方法输出一个用于分析/编辑字符串的用户选项菜单,并返回用户输入的菜单选项。每个选项都由一个字符表示。
如果输入了无效字符,继续提示输入有效选择。提示:在实施其他选项之前实施 Quit。在 main() 方法中调用 printMenu()。继续调用 printMenu() 直到用户输入 q 退出。 (3分)
例如:
菜单 c - 非空白字符的数量 w - 字数 f - 查找文本 r - 全部替换! s - 缩短空格 q - 退出
选择一个选项:
(3) 实现 getNumOfNonWSCharacters() 方法。 getNumOfNonWSCharacters() 有一个字符串作为参数,并返回字符串中的字符数,不包括所有空格。在 main() 方法中调用 getNumOfNonWSCharacters()。 (4分)
例如:
输入示例文本: 我们将继续探索太空。将会有更多的航天飞机航班和更多的航天飞机机组人员,是的,更多的志愿者、更多的平民、更多的太空教师。没有什么到此结束;我们的希望和旅程仍在继续!
您输入了:我们将继续我们的太空探索。将会有更多的航天飞机航班和更多的航天飞机机组人员,是的,更多的志愿者、更多的平民、更多的太空教师。没有什么到此结束;我们的希望和旅程仍在继续!
菜单 c - 非空白字符的数量 w - 字数 f - 查找文本 r - 全部替换! s - 缩短空格 q - 退出
选择一个选项: C 非空白字符数:181
我的代码:
import java.util.Scanner;
public class AuthoringAssistant
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
String userInput = sc.nextLine();
System.out.println("Enter a sample text: ");
System.out.println(userInput);
return printMenu;
public static int printMenu(Character[] menu)
Scanner in = new Scanner(System.in);
Character userChar = in.nextCharacter();
System.out.println("MENU");
System.out.println("c - Number of non-whitespace characters");
System.out.println("w - Number of words");
System.out.println("f - Find text");
System.out.println("r - Replace all !'s");
System.out.println("s - Shorten spaces");
System.out.println("q - Quit");
System.out.println("Choose an option: ");
if (userChar == 'q')
System.out.println("q");
System.out.println("Quit");
else if (userChar == 'w')
System.out.println("w");
System.out.println("Number of words: ");
else if (userChar == 'f')
System.out.println("f");
System.out.println("Find text: ");
else if (userChar == 'r')
System.out.println("r");
System.out.println("Replace all !'s: ");
else if (userChar == 's')
System.out.println("s");
System.out.println("Shorten spaces: ");
else if (userChar == 'c')
System.out.println("c");
System.out.println("Number of non-whitespace characters: ");
else
System.out.println("Please select a valid character.");
return char in.nextCharacter();
我收到以下错误:
AuthoringAssistant.java:55: error: '.class' expected
return char in.nextCharacter();
^
AuthoringAssistant.java:55: error: illegal start of expression
return char in.nextCharacter();
^
AuthoringAssistant.java:55: error: ';' expected
return char in.nextCharacter();
^
3 errors
【问题讨论】:
【参考方案1】:您需要更改您的退货声明。
1) 你试图返回一个 char,但你的方法返回一个 int。
public static int printMenu(...)
...
return char ... ;
2) “.nextCharacter()”不存在。您需要使用“.nextLine()”,然后使用“.charAt(x)”
例如:
in.nextLine().charAt(0); //To get the first character from the line
3) 即使您的方法确实返回了字符,您也只能在声明变量或强制转换为不同类型时声明类型。
所以而不是:
return char myVariable;
你只需要写:
return myVariable;
【讨论】:
【参考方案2】:首先,Scanner 没有 nextCharacter 方法。见here。
其次,类型转换是用 2 个括号包围类型完成的,例如。
(char) someValue
【讨论】:
铸造什么?什么变量需要转换?以上是关于给出方法/返回相关错误的 Java 程序。的主要内容,如果未能解决你的问题,请参考以下文章
rails 应用程序给出错误“无法从 ru.yml 路径 加载翻译预期它返回一个哈希,但没有”