2011-06-01 3 views
0

私はこの質問の質問を訪問しました:私は同様の問題があったので Android SAX parser not getting full text from between tagsです。私はこの側のステートメントの一つで私の問題を解決したが、私は大胆なクランプを理解していない。Java構文の問題:なぜクランプをそこに置く必要があるのですか?

String chars =- >(new String(ch).substring(start, start + length))<から

誰でも手伝ってもらえますか?なぜなら、ステートメントはそれらのステートメントなしで使用することもできるからです。

+3

あなたが話している「大胆なクランプは、」カッコと呼ばれ、彼らは、Java言語で区切りされています。あなたは基本的なJavaの本から始まり、そこから作業するほうがよいかもしれません。 – SRM

+0

これはちょっときれいです:String chars = ch。subString(start、start + length); – jabbie

答えて

2

SRMは、括弧内に記載されているとおりです。コードの可読性を改善する可能性を除けば、この特定のケースでは値を追加しません。括弧が意味を変える場合があります。それを数学の操作の順序に関連付ける。

+0

私はかなりJavaを使用していますが、私は全体の表現にクランプを使うことに驚いていました。答えのThx;) – Christian

+0

私はかっこを残す場合、私は別の結果を得た。私は言うのを忘れた。これは私にとっては非常に奇妙です。通常、私はそれらを扱う方法を知っています;) – Christian

+0

あなたは異なる結果を得てはいけません。テストした両方のバージョンを貼り付けます。 – jzd

1

必要がない場合でもかっこを使用することができます。場合によっては、物事をより明瞭にすることができます。

たとえば、1 + 2 * 3は1 +(2 * 3)と同じです。正確に言えば、括弧は、式の意味を変えずに、コードを読んで式を理解できるようにすることができます。特に式がはるかに複雑な場合に便利です。括弧を(1 + 2)* 3のように置くと、これは前の2つの式とは異なる意味になります。

コード例では、そのかっこは必要ありません。

私は個人的にキーを押す必要があり、人のコードリーダーがその行をスキャンして、見た目よりも複雑であるかどうかだけを調べることができます。時間のパケット。そのような不要な括弧があまりにも多く出現すると、重要なかっこを光沢にし、後で表現を誤解する傾向があります。私の個人的、主観的な意見。

String chars = (new String(ch).substring(start, start + length)); 

String chars = new String(ch).substring(start, start + length); 

両方同じことを意味します。

ので、これらの

String chars = ((new String(ch).substring(start, start + length))); 
String chars = (((new String(ch).substring(start, start + length)))); 
String chars = (new String((ch)).substring(start, start + length)); 
String chars = (new String(ch).substring((start), start + length)); 

は、パターンを見てみます。 IMOそれは "パターンマッチング"を介して直感的にプログラミングの構文を学ぶために教えるのは良いことではないので、あなたはSRMが示唆したようないくつかのJavaの本を見てください。

これを行うことはできますか?

String (chars) = new String(ch).substring(start, start + length); 

あなたはたぶん「いいえ」と言いますが、それは正しいでしょう。

なぜですか?なぜ答えることができないのであれば、あなたが見つけ出すのが良いでしょう。

(私はあなたをからかっていないよ、私は多くのことを入力するように感じた。)

+0

私はかっこ(すべての数学と関連しています)についてのすべてを知っていますが、私はパーサの奇妙な動作について疑問を抱いていました。しかし、おそらく他の人がこの投稿を使うことができます。 thx – Christian

+0

私は別の方向に質問をするべきだった... xD – Christian