-1

私は学校向けのiOSプロジェクトを作成していますが、それは化学反応で機能します。

ユーザーには、次のような方程式を挿入するためのテキストフィールドがあります。

Fe3O4 + CO = 3FeO + CO2

私の目標は、いくつかの条件に基づいてこれを細かく分割することです。

-大文字を見つけて、次の文字も大文字であるかどうかをテストします(例:Fe)。-各要素の最後の文字の後に数字があるかどうかを調べます。-+記号を見つけることは、別のコンポーネントを意味します。

もちろん、私はコードを求めていませんが、助けていただければ幸いです。

前もって感謝します。

4

2 に答える 2

1

文字列を「=」と「+」で区切って、文字が小文字か大文字かを確認できます。

このコードを確認してください

NSString *str = @"Fe3O4 + CO = 3FeO + CO2";
NSArray *arr = [str componentsSeparatedByString:@"="];

NSMutableArray *allComponents = [[NSMutableArray alloc] init];

for (NSString *component in arr) {
    NSArray *arrComponents = [component componentsSeparatedByString:@"+"];
    [allComponents addObjectsFromArray:arrComponents];
}

for (NSString *componentInEquation in allComponents) {
    for (int i = 0 ; i < componentInEquation.length ; i++) {
        char c = [componentInEquation characterAtIndex:i];
        if ('A' < c && c < 'Z') {
            //Small letter
            NSLog(@"%c, Capital letter", c);
        }
        else if ('0' < c && c < '9') {
            NSLog(@"%c, Number letter", c);
        }
        else if ('a' < c && c < 'z') {
            NSLog(@"%c, Small letter", c);
        }
        else {
            NSLog(@"%c Every other character", c);
        }
    }
}

今、あなたはあなた自身の計算と文字列操作をしなければならないでしょう、しかしあなたは幸運を始めます:)

于 2012-06-17T13:50:29.863 に答える
0

これを参照してください:isdigit、 isupper、islower
これを試してください:

NSString *str = @"Fe3O4 + CO = 3FeO + CO2";
NSArray *allComponents =[str componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"+="]];

for (NSString *componet in allComponents) {
    for (int i=0; i<componet.length; i++) {
        if (isdigit([componet characterAtIndex:i])) {
            NSLog(@"%c is Digit",[componet characterAtIndex:i]);
        }else if(isupper([componet characterAtIndex:i])) {
            NSLog(@"%c is uppercase",[componet characterAtIndex:i]);
        }else if (islower([componet characterAtIndex:i])) {
            NSLog(@"%c is lowercase",[componet characterAtIndex:i]);
        } else{
            NSLog(@"Every other character ");
        }


    }
}
于 2012-06-18T04:33:49.103 に答える