数组Java中每个元素的长度

时间:2016-01-18 06:22:08

标签: java arrays

这是我正在尝试使用的内容。方法.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];

5 个答案:

答案 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());
}