2017-04-03 103 views
1

我有一個名爲Employee的類,具有以下內容:firstName,lastName,salary和position,並且我想練習流方法並在對象中處理數據我想統計僱員的名字中有多少個大寫字母,但是我的問題是我把對象看作一個整體對象,如果我想通過使用foreach方法遍歷它來獲取我的對象的一個​​實例,我不能做之後的任何事情,因爲foreach是終端操作,那麼我怎麼能通過列表循環獲取每個員工的名字,並檢查它包含多少個大寫字母。 這是我一直在努力做的事情:Java manupilate列表中的對象與流方法

public class Main { 

    public static void main(String[] args) { 

     Employee emp = new Employee(); 
     List<Employee> list = new ArrayList<>(); 

     emp.setFirstName("John"); 
     emp.setLastName("Mark"); 
     emp.setPosition("dev"); 
     emp.setSalary(1000); 

     list.add(emp); 
     list.stream().forEach(i -> i.getFirstName()); 
     System.out.println(isLower(list)); 

    } 

    public static String isLower(List<Employee> empList) { 
     System.out.println("I am here"); 
     Stream<Employee> stream = empList.stream(); 
     return stream.map(i -> i.getFirstName()).toString(); 
    } 

    static boolean isDigit(char[] ch) { 
     System.out.println("I am here2"); 
     for (char c : ch) 
      return c >= '0' && c <= '9'; 
     return false; 

    } 

    static boolean isLowerCase(char[] ch) { 
     for (char c : ch) 
      return c >= 'a' && c <= 'z'; 
     return false; 
    } 

    static boolean isUpperCase(char[] ch) { 
     for (char c : ch) 
      return c >= 'A' && c <= 'Z'; 
     return false; 
    } 

} 

對不起,這麼愚蠢的問題,但我在Java初學者和努力學習

+0

注:'list.stream()的forEach(I - > i.getFirstName());'是要幹什麼基本上就沒什麼,因爲流方法從未修改。基礎數據結構。 – mc10

+0

你期望'Stream.toString()'返回什麼? – shmosel

+0

'isDigit()'和'isLowerCase()'和'isUpperCase()'有什麼關係? – shmosel

回答

1

我如何通過列表循環獲取每個員工的名字和檢查 多少大寫字母是否包含

計數沒有大寫字母在每個員工的名字

list.stream() 
    .map(Employee::getFirstName) 
    .mapToInt(s -> s.split("[A-Z]", -1).length - 1) 
    .forEach(System.out::println); 

總大寫字母

list.stream() 
    .map(Employee::getFirstName) 
    .mapToInt(s -> s.split("[A-Z]", -1).length - 1) 
    .sum(); 
+0

非常感謝你,這就是我正在尋找的,你可以給我一個很好的參考,以學習這些功能? –

+0

爲什麼我得到零,如果我將[reg]從[AZ]更改爲[az]多數民衆贊成多說,如果我想計算小寫字母 –

+0

http://winterbe.com/posts/2014/07/31/java8-stream- tutorial-examples/ – vins