java - return 导致程序要求输入两次

标签 java eclipse input

我编写了以下程序,它执行了预期的操作,除了它要求输入两次之外。我确信它要求输入两次的原因是因为 返回,因为当我在 void 方法中尝试相同的代码时,它只要求输入一次。

import java.util.Scanner;

public class Foothill
{
   public static void main(String[] args)
   {
      String theString, maskString, removeString;
      char keyCharacter;
      int keyCount;
      input = new Scanner(System.in);

      getKeyCharacter();
      keyCharacter = getKeyCharacter();
      getString();
      theString = getString();
      maskCharacter(theString , keyCharacter);
      maskString = maskCharacter(theString , keyCharacter);
      removeCharacter(theString , keyCharacter);
      removeString = removeCharacter(theString , keyCharacter);
      countKey(theString , keyCharacter);
      keyCount = countKey(theString , keyCharacter);
      input.close();

      System.out.println("String with '" + keyCharacter + "' masked");
      System.out.println("" + maskString + SEPERATOR);
      System.out.println("String with '" + keyCharacter + "' removed");
      System.out.println("" + removeString + SEPERATOR);
      System.out.println("# of " + keyCharacter + ": " + keyCount);               
   }

   public static char getKeyCharacter()
   {
      String userInput;
      char keyCharacter;
      int characterLength;

      do
      {
         System.out.println("Please enter a SINGLE letter to act as key: ");

         userInput = input.next();           
         characterLength = userInput.length();         

      }
      while (characterLength != 1); 

      keyCharacter = userInput.charAt(0);     
      return keyCharacter;      
   }

   public static String getString()
   {      
      String theString;
      int stringLength;

      do
      {
         System.out.println("Please enter a phrase or sentence >= 4 "
            + "characters: ");

         theString = input.next();
         stringLength = theString.length();

      }
      while (stringLength < MIN_CHAR || stringLength > MAX_CHAR);

      return theString;    
   }
}

最佳答案

替换:

getKeyCharacter();
keyCharacter = getKeyCharacter();
getString();
theString = getString();

与:

keyCharacter = getKeyCharacter();
theString = getString();

关于java - return 导致程序要求输入两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30283065/

相关文章:

java - 如何循环下移字母

java - 使用 log4j 在控制台中单击类名和行号

c - 为什么我的输入重定向不起作用?

java - 按 Enter 触发 System.in.read() 两次?

java - 我该怎么做才能让程序输出 1 和 0 而不是 true 和 false?

java - 无法发布到 Linux 上 ActiveMQ 上的队列

java - Android从url写入json文件

java - Movilizer - Eclipse 找不到类 'OutlineLabelProvider'

java - 通过命令行使用 TestNG xml 运行已编译的 Java Selenium 测试(带有依赖项)

javascript - 输入时间 24h :mm format cross-browser