2017-07-03 119 views
-1

我对Java有点新,并希望如果有人能帮助我。我正在使用文本编辑器在虚拟机Ubuntu上编写此代码。如果您想引用该文件,RAM错误就在这里。 http://users.cis.fiu.edu/~crahn/CGS3767/RAMerrors。该错误位于System.out.printf中的public static readingLine中。如果有人能帮助我识别错误,我将不胜感激。谢谢!线程“主”异常java.util.IllegalFormatConversionException:g!= java.lang.String

import java.io.*; 
import java.util.*; 


public class MemoryCalculator 
{ 
    private static Scanner convertingFiles; 
    public static String convertFile = "RAMerrors.txt"; 

    public static void readFile(String nameOfFile) throws IOException 
    { 
     convertingFiles = new Scanner(new File(nameOfFile)); 
    } 

    public static void readingLine(String nameOfFile) throws IOException 
    { 
     System.out.println(); 
     int recordingNum = 0; 
     while(convertingFiles.hasNext()) 
     { 
      recordingNum = recordingNum +1; 
      String recordingLine = convertingFiles.nextLine(); 

      System.out.printf("(%d) %g) \n", recordingNum, recordingLine); 
      String conv = fromHexToBi(recordingLine); 
      long decimal = fromBiToDec(conv); 
      System.out.println(errorRamRangeWeb(decimal)); 
     } 
    } 

    public static String fromHexToBi(String input) 
    { 

     int fromHexToBi = 0; 
     String record = ""; 
     char var; 

     for(int x = 0; x < input.length(); x++) 
     { 
      var = input.charAt(x); 

      if(var == '0') 
      { 
       record += "0000"; 
      } 
      else if (var == '1') 
      { 
       record += "0001"; 
      } 
      else if (var == '2') 
      { 
       record += "0010"; 
      } 
      else if (var == '3') 
      { 
       record += "0011"; 
      } 
      else if (var == '4') 
      { 
       record += "0100"; 
      } 
      else if (var == '5') 
      { 
       record += "0101"; 
      } 
      else if (var == '6') 
      { 
       record += "0110"; 
      } 
      else if (var == '7') 
      { 
       record += "0111"; 
      } 
      else if (var == '8') 
      { 
       record += "1000"; 
      } 
      else if (var == '9') 
      { 
       record += "1001"; 
      } 
      else if (var == 'A') 
      { 
       record += "1010"; 
      } 
      else if (var == 'B') 
      { 
       record += "1011"; 
      } 
      else if (var == 'C') 
      { 
       record += "1100"; 
      } 
      else if (var == 'D') 
      { 
       record += "1101"; 
      } 
      else if (var == 'E') 
      { 
       record += "1110"; 
      } 
      else if (var == 'F') 
      { 
       record += "1111"; 
      } 
      else 
      { 
       System.out.print("Sorry, the error is .out of range"); 
      } 
     } 
     System.out.println(record); 
     return record; 
    } 

    public static long fromBiToDec(String bi) 
    { 
     long decimal = 0; 

     for(int y = 0; y < bi.length(); y++) 
     { 
      if(bi.charAt(y) == '1') 
      { 
       decimal = (long) (decimal + Math.pow(2, bi.length() - 1 - y)); 
      } 
     } 
     System.out.println(decimal); 
     return (long) decimal; 
    } 

    public static String errorRamRangeWeb(long decimal) 
    { 
     String chipRangeFall = ""; 

     long errorRamRange0 = 0; 

     long errorRamRange1 = 8589934584L; 

     long errorRamRange2 = 8589934585L; 

     long errorRamRange3 = 1717986184L; 

     long errorRamRange4 = 17179869185L; 

     long errorRamRange5 = 25769803768L; 

     long errorRamRange6 = 25769803769L; 

     long errorRamRange7 = 34359738368L; 

     long result = decimal; 

     if((result >= errorRamRange0) && (result <= errorRamRange1)) 
     { 
      chipRangeFall = "1"; 
     } 
     else if ((result >= errorRamRange2) && (result <= errorRamRange5)) 
     { 
      chipRangeFall = "2"; 
     } 
     else if ((result >= errorRamRange4) && (result <= errorRamRange3)) 
     { 
      chipRangeFall = "3"; 
     } 
     else if ((result >= errorRamRange6) && (result <= errorRamRange7)) 
     { 
      chipRangeFall = "4"; 
     } 
     else 
     { 
      System.out.println("ram chip does not exist"); 
     } 
     return chipRangeFall; 

    } 


    public static void main(String[] args) throws IOException 
    { 
     readFile(convertFile); 
     readingLine(convertFile); 
    } 

} 
+0

问题或问题是什么?它在哪里发生?由于Stack Overflow隐藏了您的密切理由:*“请澄清您的具体问题或添加其他详细信息以突出显示您需要的内容,因为它目前正在编写,很难确切地告诉您要求的内容。请参阅[如何提问](https://stackoverflow.com/help/how-to-ask)页面以帮助澄清此问题。“* – jww

回答

3

你想要一个%s转换为您String说法recordingLine,不%g

1

recordingLine预计将浮动,但发现是字符串。

相关问题