title: Converting Roman Numerals To Decimal
body: <p>I have managed to get my code to convert most Roman numerals to its appropriate decimal value. But it doesn't work for some exceptional cases. Example : <code>XCIX</code> = <code>99</code> but my code prints <code>109</code>.</p>
  
  <p>Here is my code.</p>
  
  <pre><code>public static int romanConvert(String roman)
  {
      int decimal = 0;
  
      String romanNumeral = roman.toUpperCase();
      for(int x = 0;x&lt;romanNumeral.length();x++)
      {
          char convertToDecimal = roman.charAt(x);
  
          switch (convertToDecimal)
          {
          case 'M':
              decimal += 1000;
              break;
  
          case 'D':
              decimal += 500;
              break;
  
          case 'C':
              decimal += 100;
              break;
  
          case 'L':
              decimal += 50;
              break;
  
          case 'X':
              decimal += 10;
              break;
  
          case 'V':
              decimal += 5;
              break;
  
          case 'I':
              decimal += 1;
              break;
          }
      }
      if (romanNumeral.contains("IV"))
      {
          decimal-=2;
      }
      if (romanNumeral.contains("IX"))
      {
          decimal-=2;
      }
      if (romanNumeral.contains("XL"))
      {
          decimal-=10;
      }
      if (romanNumeral.contains("XC"))
      {
          decimal-=10;
      }
      if (romanNumeral.contains("CD"))
      {
          decimal-=100;
      }
      if (romanNumeral.contains("CM"))
      {
          decimal-=100;
      }
      return decimal;
  }
  </code></pre>