私はパッケージについて学んでいます。私は別のパッケージに入っている2つのクラスを持っており、私の出力に問題があるようです。ここで別のパッケージを使用したプログラム出力
は、メインとクラスです: 私の二つの問題は、下の二つの部分であり、ここで「必要な文字列のテスト」と「文字列の選択テスト」
import myUtils.util.Console;
public class ConsoleTestApp
{
public static void main(String args[])
{
// create the Console object
Console c = new Console();
// display a welcome message
c.println("Welcome to the Console Tester application");
c.println();
// int
c.println("Int Test");
int i = c.getIntWithinRange("Enter an integer between -100 and 100: ", -101, 101);
c.println();
// double
c.println("Double Test");
double d = c.getDoubleWithinRange("Enter any number between -100 and 100: ", -101, 101);
c.println();
// required string
c.println("Required String Test");
String s1 = c.getRequiredString("Enter your email address: ");
c.println();
// string choice
c.println("String Choice Test");
String s2 = c.getChoiceString("Select one (x/y): ", "x", "y");
c.println();
}
}
は、彼らがアクセスしているクラスのコードです。
package myUtils.util;
import java.util.Scanner;
public class Console
{
Scanner sc = new Scanner(System.in);
/******************************************************/
public void println()
{
}
/******************************************************/
public void print(String s)
{
System.out.println(s);
}
/******************************************************/
public void println(String s)
{
System.out.println(s);
}
/*****************************************************/
public int getIntWithinRange (String prompt, int min, int max)
{
int i = 0;
boolean isValid = false;
while (isValid == false)
{
System.out.println(prompt);
if (sc.hasNextInt())
{
i = sc.nextInt();
if (i < min)
{ System.out.println
("Error! Please enter an integer greater than -100");
}
else if (i > max)
{
System.out.println ("Error! Please enter an integer less than 100");
}
else
isValid = true;
}
else
{
System.out.println ("Error! Invalid number value");
sc.nextLine();
}
}
return i;
}
/*****************************************************/
public double getDoubleWithinRange (String prompt, double min, double max)
{
int d = 0 ;
boolean isValid = false;
while (isValid == false)
{
System.out.println(prompt);
if (sc.hasNextInt())
{
d = sc.nextInt();
if (d < min)
{
System.out.println ("Error! Please enter a number greater than -100");
}
else if (d > max)
{
System.out.println ("Error! Please enter a number less than 100");
}
else
isValid = true;
}
else
{
System.out.println("Error! Invalid number value");
sc.nextLine();
}
}
return d;
}
/*****************************************************/
public String getRequiredString(String prompt)
{
String R = "";
boolean isValid = false;
while (isValid == false)
{
System.out.print(prompt);
R = sc.nextLine();
if (R.equals(""))
{
System.out.println("Error! This entry is required. Try again.");
}
else
{
isValid = true;
}
}
return R;
}
public String getChoiceString (String prompt, String s1, String s2)
{
String s = "";
boolean isvalid = false;
while (isvalid == false);
{
s = this.getChoiceString(prompt, s1, s2);
System.out.println(s);
s = sc.nextLine();
if (!s.equalsIgnoreCase(s1) && !s.equalsIgnoreCase(s2))
{
System.out.println("Error! Entry must be '"+
s1 +"', '"+ s2 +"', or '."+ "Try again.");
}
else
{
isvalid = true;
}
}
return s;
}
public int getInt(String prompt)
{
return 0;
}
}
(これがメインの最上部に輸入されたConsoleクラスである)私はgetRequiredStringを持っています問題は、私はこれが原因となっている
R = sc.nextLine();
言うのコードの行を持っていますユーザーが何も入力しなかったと思うので、私の出力は私のエラーメッセージを出力します。私は単純に変更すると
R = sc.next();
コードは、ユーザーが何かを入力することはできません。私はこれを解決するために何をすべきか分からない。
私がgetChoiceStringで持っている問題は、プログラムが何も印刷していないことです。コードのセクションで私のプロンプトやその他の要素が表示されないようです。
私は新しく、これは宿題なので、ヒント、手がかり、またはこれを通って私を歩く助けに感謝します。
'Console'クラスの' getDoubleWithinRange'メソッドと 'getIntWithinRange'メソッドを共有できますか? –
@Korhan Ozturk確かに今編集を行います。 –
@KorhanÖztürk質問を編集してコンソールクラスに戻しました。あなたは今それらを見るべきです。 –