ごめん、忘れてた。
投稿カレンダーはJavaScriptが有効でない環境では使用できません。
aetos
埼玉を馬鹿にする奴は俺が許さん。
基本的に知ったかぶり。興味を持った技術に手を出して、ちょっと齧りはするものの、それを応用して何か形にするまでは及ばずに飽きて放り出す人。
Microsoft MVP for Windows SDKJuly 2007 - February 2008Microsoft MVP for Visual C++February 2008 - June 2009
グリムス(gremz)はJavaScriptが有効でない環境では使用できません。
e-WordsはJavaScriptが有効でない環境では使用できません。
Amazon 広告はJavaScriptが有効でない環境では使用できません。
さっぱり仕様がわかりません。第2および第3引数の意味を誰か教えてくださいorz
投稿日時 : 2007年9月21日 13:13
これですか? http://msdn2.microsoft.com/ja-jp/library/ms224421(VS.80).aspx ・・・なんだこれwややこしw startIndex から count の文字数分前のトコまでが検索範囲?w
String.LastIndexOf(target, start, count) start番目からのcount個の文字を検索の対象にすっぞ! ...って意味ちゃうんかなー
こうかな? 1. startIndexの位置で比較する 2. 一致したら、終了 3. startIndexとcountとを、1減らす 4. countが0なら、終了 5. 1.に戻る
public class Program { public static void Main() { string source = "01234567890123456789"; char target = '8'; int start = 10; int count = 10; int result = source.LastIndexOf(target, start, count); System.Console.WriteLine(result); } } 8が返ってまいりました。 start位置からcount個遡りますですねー んなわけで とりこびっち がせーかい。
>8が帰ってまいりました。 なぬっ!? じゃあ、原文から間違ってるジャン?
この検索は、startIndex の文字位置から開始し、 value が見つかるか、 count の文字位置に到達するまで、← ここがウソ♪ 逆方向に検索を実行します。 The search begins at the startIndex character position and proceeds backwards until either value is found or count character positions have been examined. 原文では"count個の文字位置を調べ尽くすまで"だな。 翻訳のマチガイですねー
startIndex から検索方向にcountするのか、文字列方向なのか、ですね。 >逆方向に検索を実行します。 コレが混乱するw
あー。 startIndex が指す文字も検索対象になるのかー。 ん…そーすっとアレもまずいな。直しとこう。
まとめ。 ●ArgumentOutOfRangeExceptionが出る条件 ・startIndex + 1 - count < 0 ・startIndex >= string.Length ●このメソッドの挙動 startIndexが指す文字を含め、そこから前にcount文字を検索対象とする。 例: CABを検索対象とするため見つからない。 "ABCABC".LastIndexOf("ABC", 4, 3 ) -> -1 後ろの ABC が検索対象となる。 "ABCABC".LastIndexOf("ABC", 5, 3 ) -> 3
いや、ArgumentOutOfRangeException の Condition 「count plus startIndex specify a position that is not within this instance. 」 が。 つか、今まで完全に間違ってたかも。 startIndex →→→→ startIndex + count で、count から逆方向に探すと思って…。
あー、そこか。確かに。 startIndexからcount回'逆方向'に検索すんだから、 「startIndex - count がマイナスになったら例外throw」がせーかいなのかな。
> count plus startIndex specify a position that is not within this instance. 英語の MSDN では、そう書いてあるところは見当たらないけど… でも、英語の例外ドキュメントもめちゃくちゃ。 http://msdn2.microsoft.com/en-us/library/0w96zd3d.aspx ArgumentNullExceptionが書いてあるけど、char が null ってあり得るの? http://msdn2.microsoft.com/en-us/library/1tw91fa3.aspx startIndex is less than zero or greater than the length of this instance. 実際には startIndex >= length で落ちます。 http://msdn2.microsoft.com/en-us/library/ms131439.aspx startIndex or count is less than zero or greater than the length of this instance. もう何言ってんだかわかりません。 別の問題もあるみたい… http://d.hatena.ne.jp/melt_slinc/20061122
> 「startIndex - count がマイナスになったら例外throw」がせーかいなのかな。 ううん。 startIndex = 5 のとき、文字列の先頭までは 6 文字あるので、count > 6 だと落ちます。 startIndex - count >= -1 までは許容範囲。
うっひょ~。混乱してきたぁ! http://msdn2.microsoft.com/en-us/library/d0z3tk9t(VS.80).aspx http://msdn2.microsoft.com/en-us/library/d0z3tk9t.aspx
衝撃の事実! URL の末尾が無印なら最新!? http://msdn2.microsoft.com/ja-jp/library/d0z3tk9t.aspx
うおぉぉぉorz (VS.80)が英語版も間違えてやがったのか… そりゃローカライズチームを責めるのは酷ってものか。
>衝撃の事実! >URL の末尾が無印なら最新!? >http://msdn2.microsoft.com/ja-jp/library/d0z3tk9t.aspx まるで今指摘されて書き直したようなwwww
なんだかなー でもでも、 インスタンスの startIndex の文字位置から開始し、value が見つかるか、"count の文字位置に到達するまで"、インスタンスの先頭へ向かって逆方向に検索を実行します。 んとこは依然マチガイよねぇ? countは'位置'じゃなく'数'だもん。
原文も紛らわしいが、正しくは「count個の文字位置を調べるまで」のようですね。 count character positions have been examined.
というか概要とか引数の説明にはちゃんと書いてある。 > 検索は指定した文字位置から開始され、指定した数の文字位置が検査されます。 > count > 検査する文字位置の数。 「文字位置の数」ってのがややこしいね。「文字数」でいいじゃないの。 epiさんの意見を反映して投稿しときました。 http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2170967&SiteID=7
「文字位置の数」ってのがややこしいね。「文字数」でいいじゃないの。 str.LastIndexOf("ABC",...) てーときに「文字数」では余計にわけわからんってことでわないかと。
Powered by: Copyright © αετος