私はいくつかのことをしようとしていますが、characterAtIndex
困惑しています。 if ([myString characterAtIndex:0]==0)
数字のゼロを探している場合は問題なく動作しますが、小数点を探している場合はif ([myString characterAtIndex:0]==.)
エラーが発生します。これを行う別の方法はありますか?
3 に答える
3
翻訳で何かが失われた可能性がありますが、現在の質問を見ると、これが解決策のようになると思います(私にとって期待どおりにコンパイルおよび実行されます):
if([myString characterAtIndex:0] == '.') {
// ...
}
これらは c スタイルの文字項目 (技術的には int) であり、c スタイルの文字列 (二重引用符を使用し、技術的には配列/ポインター) ではないため、単一引用符 (アポストロフィ) を使用する必要があることに注意してください。
于 2012-08-06T00:51:12.323 に答える
3
再び確かめる。コンパイル[myString characterAtIndex:0] == 0
されますが、期待どおりには動作しません。この条件は、文字列の最初の文字が数値の 0 ではなく、ASCII 値が 0 の文字であるかどうかをテストします。これはNUL 文字です。
-characterAtIndex:
は、単一引用符で囲まれた文字である文字リテラルと比較できる値を返します:'0'
または'.'
など。
于 2012-08-06T00:51:42.677 に答える
2
characterAtIndex は unichar 文字を返すため、「.」を使用します。代わりは。
すなわち: if ([myString characterAtIndex:0]=='.')
于 2012-08-06T00:50:29.703 に答える