回答
我猜,你一個尋找NSScanner
類,至少,如果你在一般的情況下。看看蘋果documentation。
NSString *myString = @"{53} balloons";
NSRange start = [myString rangeOfString:@"{"];
NSRange end = [myString rangeOfString:@"}"];
if (start.location != NSNotFound && end.location != NSNotFound && end.location > start.location) {
NSString *betweenBraces = [myString substringWithRange:NSMakeRange(start.location+1, end.location-(start.location+1))];
}
編輯:添加範圍檢查,THX到Keab42 - 好點。
你應該檢查兩個範圍是不是NSNotFound和end.location> start.location – Keab42 2013-02-19 14:07:58
感謝您的好答案。這是我做的: NSCharacterSet * delimiters = [NSCharacterSet characterSetWithCharactersInString:@「{}」]; NSArray * splitString = [myString componentsSeparatedByCharactersInSet:delimiters]; NSString * substring = [splitString objectAtIndex:1]; 的子串是53. – Emmy 2013-02-20 07:58:12
如果你不知道有多少個數字會出現,但你知道它總是會附在花括號試試這個:
NSString *myString = @"{53} balloons";
NSRange startRange = [myString rangeOfString:@"{"];
NSRange endRange = [myString rangeOfString:@"}"];
if (startRange.location != NSNotFound && endRange.location != NSNotFound && endRange.location > startRange.location) {
NSString *value = [myString substringWithRange:NSMakeRange(startRange.location,endRange.ocation - startRange.location)];
}
有可能做到這一點,雖然更有效的方式。
經過與任意數量的數據:
NSString *str = @"{53} balloons";
NSArray* strary = [str componentsSeparatedByString: @"}"];
NSString* str1 = [strary objectAtIndex: 0];
NSString *str2 = [str1 stringByReplacingOccurrencesOfString:@"{" withString:@""];
NSLog(@"number = %@",str2);
另一種方法是
NSString *tmpStr = @"{53} balloons";
NSRange r1 = [tmpStr rangeOfString:@"{"];
NSRange r2 = [tmpStr rangeOfString:@"}"];
NSRange rSub = NSMakeRange(r1.location + r1.length, r2.location - r1.location - r1.length);
NSString *subString = [tmpStr substringWithRange:rSub];
如果只有它的情況下牙套可以使用:
NSString *str = @"{53} balloon";
NSString * noBraces = [[str stringByReplacingOccurrencesOfString:@"{" withString:@""]
stringByReplacingOccurrencesOfString:@"}" withString:@""];
這個結果不會返回'53'。相反,它會返回'53個氣球'。 – Jeremy 2013-02-19 14:09:30
好,所以你只需要53個@「{53} ballon」。 – spider1983 2013-02-19 14:10:20
我什麼都不想要。不過,艾美表現在20個字以內。 – Jeremy 2013-02-19 14:11:01
這裏是我的沒有。
NSString *myString = @"{53} balloons";
NSCharacterSet *delimiters = [NSCharacterSet characterSetWithCharactersInString:@"{}"];
NSArray *splitString = [myString componentsSeparatedByCharactersInSet:delimiters];
NSString *substring = [splitString objectAtIndex:1];
的子是53
謝謝@艾米。這對我有效 – 2015-12-27 19:06:03
您可以使用正則表達式來獲得括號之間的數字。這看起來有點複雜,但好處是它會找到多個號碼,號碼的位置並不重要。
NSString *searchText = @"{53} balloons {12} clowns {123} sparklers";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\{(\\d+)\\}"
options:0
error:nil];
NSArray *matches = [regex matchesInString:searchText
options:0
range:NSMakeRange(0, searchText.length)];
for (NSTextCheckingResult *r in matches)
{
NSRange numberRange = [r rangeAtIndex:1];
NSLog(@"Number: %@", [searchText substringWithRange:numberRange]);
}
這將打印出:
Number: 53
Number: 12
Number: 123
對於雨燕2.1: -
var start = strData?.rangeOfString("{")
var end = strData?.rangeOfString("}")
if (start!.location != NSNotFound && end!.location != NSNotFound && end!.location > start!.location) {
var betweenBraces = strData?.substringWithRange(NSMakeRange(start!.location + 1, end!.location-(start!.location + 1)))
print(betweenBraces)
}
- 1. R:獲取大括號之間的字符串{}
- 2. 如何獲得括號之間的子字符串
- 3. 從括號,括號和連字符的字符串中獲取子字符串
- 4. 獲取字符串大括號
- 5. 獲取符號之間的字符串
- 6. 使用RegEx提取大括號之間的字符串,即{{content}}
- 7. 獲取大括號之間的值c#
- 8. 如何在兩個括號之間提取字符串 - 的JavaScript
- 9. 正則表達式獲取括號之間的字符串
- 10. PostgreSQL:獲取雙括號之間的字符串
- 11. PHP獲取括號標記之間的字符串
- 12. 如何在圓括號之間捕獲一個字符串?
- 13. 如何從文件中提取大括號之間的字符串
- 14. 在引號之間獲取字符串
- 15. 需要刪除大括號之間的字符串
- 16. 如何在包含特定搜索字符串的兩個大括號之間獲得多行字符串?
- 17. 提取符號之間的字符串
- 18. 如何獲取逗號分隔字符串的子字符串?
- 19. 正則表達式:獲取%符號之間的字符串不包括標誌
- 20. 如何獲取字符順序的兩個字符之間的子字符串?
- 21. 如何獲取字符串中的括號內的字(java)
- 22. 正則表達式在大括號之間得到字符串
- 23. 提取第三組括號之間的字符串
- 24. 提取可選括號之間的字符串
- 25. 在R中的括號之間提取字符串
- 26. 獲取字符串方括號
- 27. PHP,preg_match:如何獲得兩個字符之間的字符串,如花括號裏面的子標記包裹在大括號內?
- 28. 如何獲得「括號內」字符串中的字符串?
- 29. 如何刪除谷歌電子表格中括號之間的字符串
- 30. 獲取兩個字符串之間的子串PHP - 讀取HTML
艾美獎,你找的字符串中搜索,或你知道的位置字符串已經(位置1),你只是想把它解壓到另一個字符串中。 – Spectravideo328 2013-02-19 13:55:39
如果你只是想提取大括號之間的子字符串,我贊同@ iDroid的答案。如果你經過更復雜的搜索,請看看這個:http://stackoverflow.com/questions/4353834/search-through-nsstring-using-regular-expression。顯然要記住使用這種方法的資源成本。 – sjwarner 2013-02-19 14:08:20
不。我不知道53的位置,myString將是引擎生成的隨機字符串。我需要在{}之間取得53作爲答案。但我現在已經弄清楚瞭如何去做。請參閱下面的答案。 – Emmy 2013-02-20 08:05:02