从字符串中获取不同的数据类型值并将它们分开

时间:2012-10-08 06:04:35

标签: iphone nsstring qr-code

我正在使用二维码并在扫描后获取用户名,eventtitle和ticketcode。我需要在三个不同的字符串中分别获取这些值,以便我可以将它们保存在sqlite中。我只想知道如何进行这种分离,我可以做到省钱。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

- (void)saveData {
    sqlite3_stmt    *statement;

    const char *dbpath = [databasePath UTF8String];

    if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
    {
        NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO CONTACTS (name, address, phone) VALUES (\"%@\", \"%@\", \"%@\")", @"NameString", @"Address", @"Phone"];

        const char *insert_stmt = [insertSQL UTF8String];

        sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement, NULL);
        if (sqlite3_step(statement) == SQLITE_DONE)
        {
            NSLog(@"Success");
        } else {
            NSLog(@"Failed");
        }
        sqlite3_finalize(statement);
        sqlite3_close(contactDB);
    }
}

注意 如果你发布了你得到的字符串类型,我将添加你如何分割它。 下面是如何分割

的示例
NSArray arrResult = [str componentsSeparatedByString:@"-"]; 

或按字符集

NSString* str = @"A string with newlines in it";

NSArray *arrTemp =  [str componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

答案 1 :(得分:0)

您可以使用componentsSeparatedByString

NSString *str = @"userName:Password:etc";
NSArray* parts1 = [str componentsSeparatedByString:@":"];     
NSLog(@" [[parts1 objectAtIndex:0] integerValue]=%d", [[parts1 objectAtIndex:0] integerValue]);

//the output will be: username for index 0, and so on