这是我正在尝试使用的内容。方法.length对我尝试的任何东西都不起作用,所以我甚至不确定从哪里开始。
NSURL *URL = [NSURL URLWithString:@"http://www.androidbegin.com/tutorial/jsonparsetutorial.txt"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
} else {
[activityIndicator stopAnimating];
_responsedic = (NSDictionary*) responseObject;
_Worldpopulation = [_responsedic valueForKey:@"worldpopulation"];
_imageURL = [_Worldpopulation valueForKey:@"flag"];
_country = [_Worldpopulation valueForKey:@"country"];
_population = [_Worldpopulation valueForKey:@"population"];
NSLog(@"Data:%@",_imageURL);
NSLog(@"Population",_population);
NSLog(@"Country",_country);
// NSLog(@"%@",_MovieList);
//NSLog(@"Array: %@",_imageURL);
//NSLog(@"%@",responseObject);
//Added Code -> Reloading data on Main queue for update
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableview reloadData];
});
}
}];
[dataTask resume];
答案 0 :(得分:0)
您正在尝试迭代单个int
而不是字符串数组。变化
for (int nums: lengthList) {
System.out.println(nums.length());
}
到
for (String str: list) { // loop through the list of strings
lengthList.add(str.length()); // store the individual length of each string
}
为了遍历字符串列表,收集每个字符串的length
&将其存储在Arraylist
之后的return
。
答案 1 :(得分:0)
在以下代码中:
ArrayList<Integer> lengthList = new ArrayList<Integer>();
for (int nums: lengthList) {
System.out.println(nums.length());
}
您正在创建一个空ArrayList<Integer> lengthList
并尝试迭代它。
我想你想迭代list
这样的东西:
for (String s: list) {
lengthList.add(s.length());
System.out.println(s.length());
}
并在每次迭代中将length()
的{{1}}添加到String
。
答案 2 :(得分:0)
在您的代码中,您需要在2个位置进行更新:
1)在长度方法中,你传递的是列表(console.log(jsonData)
),但你并没有迭代你。你必须遍历这个列表
2)在for循环中,您将变量设置为int,而列表的类型为String。所以更新你的代码如下:
ArrayList<String> list
答案 3 :(得分:0)
使用以下代码:
public static List<Integer> lengths(List<String> list) {
List<Integer> lengthList = new ArrayList<Integer>();
for (String nums: list) {
int len = nums.length();
lengthList.add(len);
System.out.println(len);
}
return lengthList;
}
答案 4 :(得分:0)
Java 8 用户
public static void main(final String[] args) {
List<String> strings = Arrays.asList("Hi", "Hello", "how r u?");
List<Integer> lengthList = lengths(strings);
lengthList.forEach(System.out::println);
}
public static List<Integer> lengths(List<String> list) {
return list.stream().mapToInt(s -> s.length()).boxed()
.collect(Collectors.toList());
//OR
return list.stream().mapToInt(String::length).boxed()
.collect(Collectors.toList());
}