dポイントプレゼントキャンペーン実施中!

class test
{
public static void main(String args[])
{
int A,B,C,D;
String N,n;
A = Integer.parseInt(args[0]);
if(!(args.length == 0))
{
if(args[0].length() <= 2 || args[0].length() >= 10)
{
System.out.println("入力された文字列のバイト数は"
+ args[0].getBytes().length + "です");
}
else if(args[0].length() >= 5 || args[0].length() <= 7 )
{
D = args[0].getBytes().length;
D = D - 1;
System.out.print("入力された文字列の長さは" + ( D ) + "です");
}
else if(args[0].indexOf("N") >= 0 || args[0].indexOf("n") >= 0)
{
System.out.println("引数には'N' または 'n' が含まれていません");
}
else if(args[0].indexOf("N") >= 0 || args[0].indexOf("n") >= 0)
{
System.out.println("引数には'N' または 'n' が含まれています");
}
}
}
}

プログラムの仕様は、
プログラムに引数を1つ指定して実行した時、
入力された文字列の長さが、

2 以下、又は 10 以上である場合、
入力された文字列のバイト数を表示

5 以上、かつ、7以下である場合、
入力された文字列の[長さ-1]の値を表示

その他の場合、
入力された文字列の中に、
半角英数字の 'N' または 'n' が含まれている場合は、
引数には'N' または 'n' が含まれています
それ以外の場合は
引数には'N' または 'n' は含まれていませんと表示

このようにさせたいんです。
実行例は、
・D:\Work>java test z

入力された文字列のバイト数は 1 です

・D:\Work>java test dertftd

入力された文字列の長さは 6 です

・D:\Work>java test asd

引数には'N' または 'n' は含まれていません

・D:\Work>java JavaSample7 nfc

引数には'N' または 'n' が含まれています

と、実行させたいんですが、Nやnを入力して実行するとエラーが出てしまうんです・・・
長くなって申し訳ないんですが、どなたかご教授いただけないでしょうか?

A 回答 (1件)

class test


{
public static void main(String args[])
{
/*
int A,B,C,D;
String N,n; ←変数B,C,N,nは全く使われていない。 今回はAも不要だ。
A = Integer.parseInt(args[0]); ←数字として解釈しようとしてうまくいかないのは当たり前。

いくつかは条件が間違っているので || を &&に変更。
*/

int D;
if(args.length >= 1){
if(args[0].length() <= 2 || args[0].length() >= 10)
{
System.out.println("入力された文字列のバイト数は"
+ args[0].getBytes().length + "です");
}else if(args[0].length() >= 5 && args[0].length() <= 7 ){
D = args[0].getBytes().length;
D = D - 1;
System.out.print("入力された文字列の長さは" + ( D ) + "です");
}else if(args[0].indexOf("N") < 0 && args[0].indexOf("n") < 0){
System.out.println("引数には'N' または 'n' が含まれていません");
}else if(args[0].indexOf("N") >= 0 || args[0].indexOf("n") >= 0){
System.out.println("引数には'N' または 'n' が含まれています");
}
}
}
}
    • good
    • 0
この回答へのお礼

ありがとうございました。
色々間違ってるところがわかりました。
今一度、自分のと見比べて学習しようと思います。

お礼日時:2008/07/13 14:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!