给出方法/返回相关错误的 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 程序。的主要内容,如果未能解决你的问题,请参考以下文章

返回 malloc 的结构会给出段错误和不同的地址

rails 应用程序给出错误“无法从 ru.yml 路径 加载翻译预期它返回一个哈希,但没有”

Java String ReplaceAll 方法给出非法重复错误?

java编程基础----异常

java编程基础----异常

“应用程序不断停止”弹出窗口并给出错误 java.lang.RuntimeException