我有一个字符串长度为56的字符串。
首先我试图确保字符串具有正确的长度,如果没有,应用程序应该用其他内容填充多个标签。
if ([[NSString stringWithContentsOfURL:siteURL] length] == 56) {
NSString *siteString = @"http://www.xxxx/iphone.txt";
NSURL *siteURL = [NSURL URLWithString:siteString];
myField2.text = [NSString stringWithContentsOfURL:siteURL encoding:NSUTF8StringEncoding error:nil];
[NSString stringWithContentsOfURL:siteURL encoding:NSUTF8StringEncoding error:nil];
NSArray *myArray = [[NSString stringWithContentsOfURL:siteURL encoding:NSUTF8StringEncoding error:nil] componentsSeparatedByString: @": "];
[myField2 setText: [myArray objectAtIndex: 0]];
[myField3 setText: [myArray objectAtIndex: 1]];
[myField4 setText: [myArray objectAtIndex: 2]];
[myField5 setText: [myArray objectAtIndex: 3]];
[myField6 setText: [myArray objectAtIndex: 4]];
}
else {
[myField2 setText: @"-"];
[myField3 setText: @"-"];
[myField4 setText: @"-"];
[myField5 setText: @"-"];
[myField6 setText: @"-"];
}
在我的字符串中通常有28个数字。 我希望我的应用程序检查字符串,是否有28个数字。 我尝试使用以下代码:
for (int number = 0; number = 28; number++) {
}
但我猜这不是正确的方法。
我有一个给定的范围,56,可能的数字0-9,任何想法如何看起来像?
提前致谢:)
我试过了:
for (int number = 0; number < 56; number++){
unichar c = [[NSString stringWithContentsOfURL:siteURL] characterAtIndex:number];
if (c >= '0' && c <= '9'){
number++;
if (number = 28) {
NSString *siteString = @"http://www.xxxx/iphone.txt";
NSURL *siteURL = [NSURL URLWithString:siteString];
myField2.text = [NSString stringWithContentsOfURL:siteURL encoding:NSUTF8StringEncoding error:nil];
[NSString stringWithContentsOfURL:siteURL encoding:NSUTF8StringEncoding error:nil];
NSArray *myArray = [[NSString stringWithContentsOfURL:siteURL encoding:NSUTF8StringEncoding error:nil] componentsSeparatedByString: @": "];
[myField2 setText: [myArray objectAtIndex: 0]];
[myField3 setText: [myArray objectAtIndex: 1]];
[myField4 setText: [myArray objectAtIndex: 2]];
[myField5 setText: [myArray objectAtIndex: 3]];
[myField6 setText: [myArray objectAtIndex: 4]];
}
else {
[myField2 setText: @"-"];
[myField3 setText: @"-"];
[myField4 setText: @"-"];
[myField5 setText: @"-"];
[myField6 setText: @"-"];
}
}
}
但它不起作用,我想我犯了一些错误:x
当前代码:
int i = 0;
for (int numberc = 0; numberc < 56; numberc++){
unichar c = [[NSString stringWithContentsOfURL:siteURL encoding:NSASCIIStringEncoding error:&error] characterAtIndex:numberc];
// Funktion die bestimmt, dass bei jedem positiven Match der Zähler um eins erhöht wird.
if (c >= '0' && c <= '9'){ //Parameter für das Absuchen des Strings
i++;
}
}
答案 0 :(得分:3)
你的for循环需要沿着字符串的长度。 e.g。
int nLength = [myString length];
for (int number = 0; number < nLength; number++)
然后你会想从该字符串中获取一个字符。使用characterAtIndex方法。
unichar c = [myString characterAtIndex:number];
然后检查该字符在'0'和'9'之间。 e.g。
if (c >= '0' && c <= '9')
编辑:有关评论的附加说明。 要计算数字,请在for循环之前在零处开始一个整数:
int numbercount = 0;
在字符为数字的测试中,将其递增:
if (c >= '0' && c <= '9')
{
numbercount++;
测试它是28.注意==进行比较:
if (numbercount == 28)
编辑:下一评论的附加说明
int i = 0;
NSString *url = [NSString stringWithContentsOfURL:siteURL encoding:NSASCIIStringEncoding error:&error];
for (int numberc = 0; numberc < 56; numberc++)
{
unichar c = [url characterAtIndex:numberc];
// Funktion die bestimmt, dass bei jedem positiven Match der Zähler um eins erhöht wird.
if (c >= '0' && c <= '9')
{
//Parameter für das Absuchen des Strings
i++;
}
}
答案 1 :(得分:1)
for (i=0; i<string.length; i++) {
if ([[string characterAtIndex:i] intValue] <= 9 || [[string characterAtIndex:i] intValue] >= 0 )
numbercounter ++;
}
答案 2 :(得分:0)
for (i=0; i<string.length; i++) {
if ([string characterAtIndex:i]=='0' || [string characterAtIndex:i]=='1' ... || [string characterAtIndex:i]=='9')
numbercounter ++;
}
希望这有帮助
答案 3 :(得分:0)
怎么样:
NSCharacterSet *digits=[NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
NSArray *tmpArray=[yourString componentsSeparatedByCharactersInSet:digits];
int nDigits=(int)tmpArray.count-1;
然后随心所欲地使用nDigits