1  /**
  2     Describes a value that is associated with a country
  3  */
  4  public class CountryValue
  5  {
  6     private String country;
  7     private double value;
  8  
  9     /**
 10        Constructs a CountryValue from an input line.
 11        @param line a line containing a country name, followed by a value
 12     */
 13     public CountryValue(String line)
 14     {
 15        int i = 0; // Locate the start of the first digit
 16        while (!Character.isDigit(line.charAt(i))) { i++; }
 17        int j = i - 1; // Locate the end of the preceding word
 18        while (Character.isWhitespace(line.charAt(j))) { j--; }     
 19        country = line.substring(0, j + 1); // Extract the country name
 20        value = Double.parseDouble(line.substring(i).trim()); // Extract the value
 21     }
 22  
 23     /**
 24        Gets the country name.
 25        @return the country name
 26     */
 27     public String getCountry() { return country; }
 28  
 29     /**
 30        Gets the associated value.
 31        @return the value associated with the country
 32     */
 33     public double getValue() { return value; }
 34  }