劣悪さが変わっていないJava日本語ドキュメンテーション
Stringクラスのtrim()メソッドの振る舞いを確認したいことがあり、久々にJava APIのドキュメンテーションを読んだ。
英語:
日本語:
私は過去に3回ぐらい、今はなきSun(日本法人)に、Javaのドキュメンテーションの日本語化を私にやらせろ、現状はあまりにひどい、と申し出たことがある。相手は、無意欲・無理想・無能力のクソサラリーマンだから、彼らは私に門前払いを食わせるだけだ。無能なクソサラリーマンの会社だったから、Oracleなんかに買収されて、Javaの母国Sunは宇宙の彼方へ蒸散してしまった。
とにかく、この訳もひどいし、読者に危険な誤解を与える。leading≠先頭、trailing≠最後だ。
TABTABTABdanceSPSPSPSP
という文字列があったら、「先頭」は最初のTAB、「最後」は最後のSPだ。
これに対し、
「leading」はdanceの前のすべてのTABTABTAB(タブ文字3つ)、「trailing」はdanceの後ろのすべてのSPSPSPSP(スペース4つ)だ。
ここで正しい日本語訳を示してもよいが、あらためてSun(日本法人)の愚昧なクソサラリーマンどものことがアタマに来ているので、やる気を失った。ほとんどの人が無能なクソサラリーマンになることを目指して無意味な競争に励み、一生、明朗で良質なコミュニケーションを忌避する日本は、いよいよこれから、文化的にも経済的にも沈没していくのみなり。そして能力のある人は、グローバルに活躍するだろう。
| 固定リンク
コメント
サラリーマン(社会人)は人間ではありません。
(昔から言われているように)歯車です。
投稿: みなみ | 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分