1

私は現在、このような文字列の一部を見ています;

            if (thisChar == 'a')
            [self a];

        else if (thisChar == 'b')
            [self b];

        else if (thisChar == 'c')
            [self c];

........。

        else if (thisChar == '0')
        [self zero];

    else if (thisChar == '1')
        [self one];

    else if (thisChar == '2')
        [self two];

    else if (thisChar == '3')
        [self three];

........。

            else if (thisChar == '.')
        [self period];

    else if (thisChar == ',')
        [self comma];

    else if (thisChar == '?')
        [self qmark];

私が来ると問題が発生します

else if (thisChar == ''')
        [self three];

私が欲しいのは'(アポストロフィ)記号ですが、それは私にそれをさせません。その理由はわかりますが、それを回避する方法がわかりません。これは役に立ちますか?

NSString *apostropheString = [[NSString alloc] initWithFormat:@"'"];

unichar apostrophe = [apostropheString characterAtIndex:0];

isEqualToStringを使用できますか?

if ([apostrophe isEqualToString: thisChar]) 

どんな助けでも大歓迎です!


私は次のことを行うことでそれを回避する方法を見つけました。

1)。アポストロフィである単一の文字でNNStringを作成します

NSString *apostropheString = [[NSString alloc] initWithFormat:@"'"];

2)。インデックスがゼロで、インデックスが0の文字が1つしかないため、「app」という名前のユニチャーに変換してください。

unichar app = [apostropheString characterAtIndex:0];

3)。次に、「thisChar」が「app」と等しい場合は「qmark」を実行します

else if (thisChar == app)
        [self qmark];

これが同じ問題を抱えている人に役立つことを願っています!

4

1 に答える 1

3

バックスラッシュでアポストロフィをエスケープする必要があります: '\''.

于 2011-01-30T20:25:35.227 に答える