Misaku
@Misaku (Misaku suzuki)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

JavaSilver これはバグですかの

解決したいこと

JavaSilver 黒本の問題集を解いていて、コードを実行してみたのですが答えと違う結果が出ました
https://book.impress.co.jp/books/1118101186
この本のお詫びと訂正には、記載されていない

実行したコード

public class Study99 {

	public static void main(String... args) {
		// TODO 自動生成されたメソッド・スタブ

		System.out.println(args.length);
		
		System.out.println(args[0]);
		System.out.println(args[1]);
		System.out.println(args[2]);
		System.out.println(args[3]);
		System.out.println(args[4]);

		}
}

Eclipse にて、引数を
a ¥" a¥" "a "b c
として実行しました。

本には 引数が5個になると記述がありますが、実行すると

4
a
¥ a¥
a b
c
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4
	at Study99.main(Study99.java:13)

このように一番最後にエラーのようなものまで表示されます。

どなたか本当の正解を教えてください。

問題はこちらです
java2.jpg

解答はBの5が表示となってまして 解説はこのように
java1.jpg

よろしくお願いします。

0

2Answer

a ¥" a¥" "a "b c

質問文にご記載の円記号はエスケープ用のバックスラッシュU+5Cではなく円記号U+A5です.
Windows環境では円記号キーでU+5Cが入力されますが,Mac等では円記号キーでU+A5が入力されます.

上記の関係で,日本語の教本では暗黙的に円記号をバックスラッシュU+5Cとして記載しているものがありますので,適宜読み替えてください.

1Like

Comments

  1. @Misaku

    Questioner

    そういう事だったのですね!!!
    ありがとうございます!!

Your answer might help someone💌