« 遺伝子組み換え作物は全自然をモルモット化する | トップページ | 神はhubrisを罰す »

2011年11月29日 (火)

劣悪さが変わっていないJava日本語ドキュメンテーション

Stringクラスのtrim()メソッドの振る舞いを確認したいことがあり、久々にJava APIのドキュメンテーションを読んだ。

英語:
Returns: A copy of this string with leading and trailing white space removed, or this string if it has no leading or trailing white space.

日本語:
戻り値: この文字列の先頭と最後の空白を削除したコピー、またはこの文字列 (先頭と最後に空白が存在しない場合).

私は過去に3回ぐらい、今はなきSun(日本法人)に、Javaのドキュメンテーションの日本語化を私にやらせろ、現状はあまりにひどい、と申し出たことがある。相手は、無意欲・無理想・無能力のクソサラリーマンだから、彼らは私に門前払いを食わせるだけだ。無能なクソサラリーマンの会社だったから、Oracleなんかに買収されて、Javaの母国Sunは宇宙の彼方へ蒸散してしまった。

とにかく、この訳もひどいし、読者に危険な誤解を与える。leading≠先頭、trailing≠最後だ。
TABTABTABdanceSPSPSPSP
という文字列があったら、「先頭」は最初のTAB、「最後」は最後のSPだ。
これに対し、
「leading」はdanceの前のすべてのTABTABTAB(タブ文字3つ)、「trailing」はdanceの後ろのすべてのSPSPSPSP(スペース4つ)だ。

ここで正しい日本語訳を示してもよいが、あらためてSun(日本法人)の愚昧なクソサラリーマンどものことがアタマに来ているので、やる気を失った。ほとんどの人が無能なクソサラリーマンになることを目指して無意味な競争に励み、一生、明朗で良質なコミュニケーションを忌避する日本は、いよいよこれから、文化的にも経済的にも沈没していくのみなり。そして能力のある人は、グローバルに活躍するだろう。

|

« 遺伝子組み換え作物は全自然をモルモット化する | トップページ | 神はhubrisを罰す »

コメント

サラリーマン(社会人)は人間ではありません。
(昔から言われているように)歯車です。

投稿: みなみ | 2011年11月30日 (水) 09時49分

いやー、さすが岩谷さん、かっこいいです!本当はもっとリターンしたいんですが、残念!

投稿: alarky | 2011年11月30日 (水) 23時28分

勉強しようとすると、
良質な教科書を探さないといけない状況なのですね
分かりました。
ありがとうございます

simomitu

投稿: 下光博之 | 2011年12月 1日 (木) 10時48分

Returns: A copy of this string with leading and trailing white space removed, or this string if it has no leading or trailing white space.
  Returns: S~A copy of this string~S (with {leading - 岩谷さんの説明から,対象文字列の前の部分すべて} and {trailing - 同様に,対象文字列の後ろすべて} white space removed) V~is returned~V, or S~this string~S V~is returned~V (if it has no leading or trailing white space).
    ● 戻り値: ''ホワイトスペース'' を削除した文字列か、それがなければ、元の文字列のまま。
      *「付帯状況のwith」 ― "with+名詞+形容詞の働きをするもの"で「名詞を~の状態にして」という意味

で、問題は、''ホワイトスペース''だが、
岩谷さんの「Javaによるテキスト処理入門」から、
  1. スペース
  2. タブ
  3. 改行(文字)
  4. 改頁<改ページ> // 使ったことがないから、?
  5. その他、Unicode文字コード値 0x0020以下<十進法で''32''以下>すべて。
      // 「0」を含めると、33個、用意されていることになる。
      // 実体は?。
      // 尚、1~4 は、5 に、含まれます。
と言うことのようです。

またまた、その本からの使用例を、見てみましょう。(ほんの少しだけ変えました)
public class TrimTest {
  public static void main (String[] args) {
    String strEng = " 芸術は爆発だ! ";
    String strJap = "  芸術は爆発だ!  ";
    String Sippo = "では爆発は芸術か?\n";
    System.out.print("ASCII SPACES: " + strEng.trim() + Sippo);
    System.out.print("JIS SPACES : " + strJap.trim() + Sippo);
  }
}
/*
%java TrimTest
ASCII SPACES: 芸術は爆発だ!では爆発は芸術か?
JIS SPACES :   芸術は爆発だ!  では爆発は芸術か?
*/

なにが、言いたいのかと言うと、日本語の全角スペースは、トリミングされない!
と言うことです。

で、さらに、何が言いたいかは、日本の書籍で、
  ここまで、説明されている文献は、
ない!とは、言いませんが、
とても少なすぎるような気がします。

まあ、僕なんかが主張したところで、何も変わるとは思えませんが、
日本の、オラクルさん、がんばってください!

投稿: alarky | 2011年12月 4日 (日) 09時31分

↑訂正:
String strEng = " 芸術は爆発だ! "; を、
String strEng = "  芸術は爆発だ!  "; に、置き換えてください。

 なぜなら、半角文字、Tab(タブ)は、ここで投稿すると、消えてしまうことを忘れていました。
 もし、このコードをコピーしても、コンパイルできませんし、trim()を、検証できません。
 ・全角文字で、タブの代わりにしている。
 ・String strEng = "  芸術は爆発だ!  "; の部分は、本来、半角文字で、空白を作らなければならないが、表示されないので、この訂正では、全角文字です。

投稿: alarky | 2011年12月 4日 (日) 09時53分

↑申し訳ない!
さらに訂正、試しに以下を実行してみました。

// 空白が、前・中間・後と、3箇所あったらどうなる? trim()

public class verifyTrim {
  public static void main (String[] args) {
    String strEng = "****芸術は*爆発だ!****";
      // * ― 本当は、半角空白文字
    String strJap = "  芸術は 爆発だ!  ";
    String Sippo = "では爆発は芸術か?\n";
    System.out.print("ASCII SPACES: " + strEng.trim() + Sippo);
    System.out.print("JIS SPACES : " + strJap.trim() + Sippo);
  }
}

/*
%java verifyTrim
ASCII SPACES: 芸術は 爆発だ!では爆発は芸術か?
  // は*爆 ・・・ スペースは消えていない!
JIS SPACES :   芸術は 爆発だ!  では爆発は芸術か?
*/

と言うことは、
間違い: ● 戻り値: ''ホワイトスペース'' を削除した文字列か、それがなければ、元の文字列のまま。
正解: ● 戻り値: 「対象文字列前後の」''ホワイトスペース'' を削除した文字列か、それがなければ、元の文字列のまま。

ついでに、対象文字列内に複数のスペースが在った場合も検証してみました。

// 空白が、前・中間3つ・後と、あったらどうなる? trim()

public class verifyTrim2 {
  public static void main (String[] args) {
    String strEng = "  芸術は 爆 発 だぞ!  ";
    String strJapEng = "  芸術は 爆 発 だぞ!  ";
    String Sippo = "では爆発は芸術か?\n";
    System.out.print("ASCII SPACES: " + strEng.trim() + Sippo);
    System.out.print("JIS SPACES : " + strJapEng.trim() + Sippo);
  }
}

/*
%java verifyTrim2
ASCII SPACES: 芸術は 爆 発 だぞ!では爆発は芸術か?
JIS SPACES :   芸術は 爆 発 だぞ!  では爆発は芸術か?
*/

 これで、ほぼ理解できたと自分では思いました。

投稿: alarky | 2011年12月 4日 (日) 11時56分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/140652/53365585

この記事へのトラックバック一覧です: 劣悪さが変わっていないJava日本語ドキュメンテーション:

« 遺伝子組み換え作物は全自然をモルモット化する | トップページ | 神はhubrisを罰す »