코드는 이러하고

public class WorldPopulations {
 public static void main(String[] args){
  Map<String, Integer> populations = new HashMap<>();
  
  Scanner in = null;
  try{
   in = new Scanner(new File("population.txt"));
   in.useDelimiter("[^A-Za-z']");
  }
  catch(FileNotFoundException e){
   e.printStackTrace();
   System.exit(0);
  }
  String str;
  int populationNumber;
  while(in.hasNext()){
   str = in.next().toLowerCase();
   populationNumber = in.nextInt(); // 에러나는 부분
   int i = 0;
   while (i < str.length() && !Character.isLetter(str.charAt(i)))
    i++;
   int j = str.length() - 1;
   while (j >= i && !Character.isLetter(str.charAt(j)))
    j--;
   String word = str.substring(i, j + 1).toLowerCase();
   populations.put(word, populationNumber);
  }
  
  Scanner contact = new Scanner(System.in);
  
  System.out.println(populations.get(contact));
 }
}

population.txt라는 텍스트파일은 나라랑 인구수가 쭉 써져 있어
China 1336718015
India 1189172906
United States 313232044
Indonesia 245613043
Brazil 203429773
대충 이런식으로 써져있고,
이걸 읽어서 맵에 스트링값에는 나라를 넣고, 인트값에 인구수를 넣는거야.
코드의 목적은 사용자가 나라를 입력하면 그 나라에 해당하는 인구수가 나오건데
지금 저기에서 에러가 계속 나는데 고치는 방법좀 알려줘...

에러명은
Exception in thread "main" java.util.InputMismatchException
 at java.util.Scanner.throwFor(Unknown Source)
 at java.util.Scanner.next(Unknown Source)
 at java.util.Scanner.nextInt(Unknown Source)
 at java.util.Scanner.nextInt(Unknown Source)
 at p13_5_hash.WorldPopulations.main(WorldPopulations.java:26)

이거란 말야.. 어떻게 고쳐야될지 조언좀해줘