Java Parrot程序简介

时间:2014-02-13 04:13:40

标签: java

我们有一个java类im简介的作业,需要我们编写一只鹦鹉。

基本上我们有一个输出 “你想说什么?

用户输入他的输入 “Blah Blah Blah”

然后鹦鹉应该重复

“Blah Blah Blah”

我已经实现了这个目标。

package parrot;

import java.util.Scanner;


public class Parrot {


    public static void main(String[] args) {
        System.out.print(" What do you want to say? ");


        Scanner input = new Scanner(System.in);
        String Parrot = input.nextLine();

        System.out.println("Paulie Says: " + Parrot);



    }
}

这给了我需要的确切结果,但是我在实验室说明中读到它希望我们在2个文件中完成它?

 Add 2 files to the project: Parrot.java and ParrotTest.java
 In Parrot.java do the following:
 Create a public class called Parrot
 Inside the class create a public method called speak. The method speak has one String          parameter named word and no return value (i.e. return type void) The method header looks     like this: public void speak(String word)
 The parrot repeats anything he is told. We implement this behavior by printing the   word passed as an argument

我认为我被要求做的是从另一个文件中调用它?有人可以向我解释如何做到这一点,因为我不确定最近会发生什么?

3 个答案:

答案 0 :(得分:1)

是的,您的程序执行给定的任务,但不是按您要求的方式执行。您的main方法应该从ParrotTest.java文件中执行。在这个文件(ParrotTest.java)中,您需要通过调用构造函数来创建类的实例(您可以将其称为Parrot)。

在Parrot.java中,您将创建一个名为'speak'的方法,该方法接受String字。

回到main方法:在这里,您将要求输入用户输入,以字符串'word'捕获输入,并将其作为参数传递给您创建的speak方法。一旦您的方法具有此参数,您就可以将其内容打印到控制台。

答案 1 :(得分:0)

Parrot会有以下

public class Parrot
{
   public void speak( String word )
  {
     System.out.printf("%s", word);
  }
}

Parrot Test会有以下

import java.util.Scanner;

public class ParrotTest
{

   public static void main(String[] args)
      {
   Scanner input = new Scanner(System.in);

   System.out.print("What would you like to say to the parrot?: ");

   String words = input.nextLine();

   Parrot myParrot = new Parrot();
   myParrot.speak(words);
      }     
}

答案 2 :(得分:0)

我不知道你是否必须使用扫描仪,但我会这样做.BTW此代码适用于Jcreator。

public static void main(String[] args) {
String say = IO.getString("Say something") // This is asking the user to say something

System.out.print(name);
}


If you want it to loop 10 times then
then do this




public static void main(String[] args) {
String say = IO.getString("Say something"); // This is asking the user to say something
int count = 10; // it will loop 10 times
while (count >= 10) {
System.out.print(name);
say = IO.getString("Say something");
count++;

}

顺便说一句,如果你没有IO类,你可以这样做。只需将此代码复制到jcreator中,然后将其保存到保存所有代码的位置。

/**
 * @(#)IO.java
 * This file is designed to allow HCRHS students to collect information from the
 * user during Computer Science 1 and Computer Science 2.
 * @author Mr. Twisler, Mr. Gaylord
 * @version 2.01 2014/12/21
 *      *Updated fix to let \t work for all input/output
 *      *Added input methods to allow for console input
 *      *Allowed all get methods to work with all objects
 *      *Updated format methods to use String.format()
 */

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

import java.util.Scanner;
import java.util.InputMismatchException;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;

public class IO {

    // Shows a message in a popup window
    public static void showMsg(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        JOptionPane.showMessageDialog(null, text, "HCRHS", 
            JOptionPane.PLAIN_MESSAGE);
    }

/*********************************User Input Methods***************************
 * All user input methods get the data type mentioned in their name and return
 * a default value if the user enters an incorrect responce.
 ******************************************************************************/

    // Returns String typed by user, default value is ""
    public static String getString(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        String ans = JOptionPane.showInputDialog(null, text, "HCRHS",
                        JOptionPane.QUESTION_MESSAGE);
        if(ans == null) {
             return "";
        }
        return ans;
    }

    public static String nextString() {
        Scanner scan = new Scanner(System.in);
        String ans = scan.nextLine();
        scan.close();
        if(ans == null) {
             return "";
        }
        return ans;
    }

    // Returns int typed by the user, default value is 0
    public static int getInt(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        try {
            return Integer.parseInt(JOptionPane.showInputDialog(null, text, 
                    "HCRHS", JOptionPane.QUESTION_MESSAGE));
        } catch (NumberFormatException e) {
            //System.out.println("Not a valid int");    
            return 0;
        }
    }

    public static int nextInt() {
        Scanner scan = new Scanner(System.in);
        int ans;
        try {
            ans = Integer.parseInt(scan.nextLine());
        } catch (NumberFormatException e) {
            //System.out.println("Not a valid int");    
            ans = 0;
        }
        scan.close();
        return ans;
    }  

    // Returns double typed by the user, default value is 0.0
    public static double getDouble(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        try {
            return Double.parseDouble(JOptionPane.showInputDialog(null, text, 
                        "HCRHS", JOptionPane.QUESTION_MESSAGE));
        } catch (NumberFormatException|NullPointerException e) {
            //System.out.println("Not a valid double");
            return 0;
        }
    }

    public static double nextDouble() {
        Scanner scan = new Scanner(System.in);
        double ans;
        try {
            ans = Double.parseDouble(scan.nextLine());
        } catch (NumberFormatException|NullPointerException e) {
            //System.out.println("Not a valid double");
            ans = 0;
        }
        scan.close();
        return ans; 
    }

    // Returns char typed by the user, default value is ' '
    public static char getChar(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        try {
            return JOptionPane.showInputDialog(null, text, "HCRHS", 
                        JOptionPane.QUESTION_MESSAGE).charAt(0);
        } catch (NullPointerException|StringIndexOutOfBoundsException e) {
            //System.out.println("Not a valid char");
            return ' ';
        }
    }

    public static char nextChar() {
        Scanner scan = new Scanner(System.in);
        char ans;
        try {
            ans = scan.nextLine().charAt(0);
        } catch (NullPointerException|StringIndexOutOfBoundsException e) {
            //System.out.println("Not a valid char");
            ans = ' ';
        }
        scan.close();
        return ans;
    }

    // Returns boolean typed by the user, default value is false
    public static boolean getBoolean(Object obj) {
        JTextArea text = new JTextArea(obj.toString());
        text.setBorder(null);
        text.setOpaque(false);
        text.setEditable(false);
        //String text = obj.toString().replace("\t", "     ");
        int n = JOptionPane.showOptionDialog(null, text, "HCRHS", 
                    JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, 
                    null, new Object[]{"True", "False"}, 1);
        return (n == 0);
    }

    public static boolean nextBoolean() {
        Scanner scan = new Scanner(System.in);
        String bool = scan.nextLine().toLowerCase();
        scan.close();
        if (bool.equals("true") || bool.equals("t") || bool.equals("1")) {
            return true;
        } else {
            return false;
        }
    }

/******************************Formatting Methods******************************
 * Format is overloaded to accept Strings/int/double/char/boolean
 ******************************************************************************/

    public static String format(char just, int maxWidth, String s)  {
        if (just == 'l' || just == 'L') {
            return String.format("%-" + maxWidth + "." + maxWidth + "s", s);
        } else if (just == 'r' || just == 'R') {
            return String.format("%" + maxWidth + "." + maxWidth + "s", s);
        } else if (just == 'c' || just == 'C') {
            return format('l', maxWidth, format('r', 
                            (((maxWidth - s.length()) / 2) + s.length()), s));
        } else {
            return s;
        }
    }

    public static String format(char just, int maxWidth, int i) {
        return format(just, maxWidth, String.format("%d", i));
    }

    public static String format(char just, int maxWidth, double d, int dec) {
        return format(just, maxWidth, String.format("%,." + dec + "f", d));
    }   

    public static String format(char just, int maxWidth, char c) {
        return format(just, maxWidth, String.format("%c", c));
    }

    public static String format(char just, int maxWidth, boolean b) {
        return format(just, maxWidth, String.format("%b", b));
    }

/*********************************Fancy Expirmental Methods********************/

    public static String choice(String... options) {
        String s = (String)JOptionPane.showInputDialog(null, 
                        "Pick one of the following", "HCRHS", 
                        JOptionPane.PLAIN_MESSAGE, null, options, null);
        //If a string was returned, say so.
        if ((s != null) && (s.length() > 0)) {
            return s;
        }
        return "";   
    } 

    public static String readFile(String fileName) {
        String ans ="";
        try {
            Scanner scanner = new Scanner(new File(fileName));
            scanner.useDelimiter(System.getProperty("line.separator")); 
            while (scanner.hasNext()) {
                ans += scanner.next()+"\n";
            }
            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        return ans;
    }

    public static void writeFile(String fileName, String data) {
        try {
            FileWriter fw = new FileWriter(fileName, true);
            fw.write(data);
            fw.close();
        } catch(java.io.IOException e) {
            e.printStackTrace();
        }
    }
}