내가 좋아하는 형식이 숫자가 .txt 파일이 다음문자열을 .txt 파일에서 double 형식으로 변환 하시겠습니까?
1.2 2.3 3.4 4.5 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0
이들을 함께 추가하여 새 .txt 파일로 인쇄하십시오. 내 오류 메시지는 다음과 같습니다
예외 스레드에서 "주요"java.lang.NumberFormatException의를 : 입력 문자열의 경우 : "1.2 2.3 3.4 4.5" sun.misc.FloatingDecimal.readJavaFormatString에서 (FloatingDecimal.java을 : 2043) at sun.misc.FloatingDecimal.parseDouble (FloatingDecimal.java:110) at java.lang.Double.parseDouble (Double.java:538) at scanstrings.ScanStrings.parseDouble (ScanStrings.java:51) at scanstrings.ScanStrings.main (ScanStrings.java:33)
나는 각각의 숫자를 분리하여 두배로 변환 할 수 있도록하려고했지만 아무 것도하지 않아도 아무 일도하지 않는 것처럼 보이고 공백과 마침표를 사용하여 분할하는 방법을 찾았지만 각각의 방법으로 리턴을 시도합니다 동일한 오류 메시지.
내 코드는 기본적으로 지금이 바로 보이는(난 그냥 그냥 나쁜 경우에 나는 또한 그래서 일부 단지 의미
을하지 않을 수 있습니다 잠시 동안이 장난 봤는데, 미안 해요 이렇게 시작 해요 !에 StackOverflow에//Construct Scanner object for the input file
Scanner input = new Scanner (new File("one.txt"));
//Construct Scanner object for the output file
PrintWriter output = new PrintWriter("result.txt");
//Read lines from the input file
while(input.hasNextLine()){
String line = input.nextLine();
String[] conv = line.split("\\s+");
String dub1 = conv[0];
String dub2 = conv[1];
String dub3 = conv[2];
String dub4 = conv[3];
//convert to double
double dub = parseDouble(line);
//compute sum
double total = 0;
if (dub != 0) //protect against division by zero
{
total += dub;
}
System.out.printf("\n", dub, total);
}
input.close();
output.close();
}
public static double parseDouble(String conv) throws NumberFormatException{
int i = 0;
while (!Character.isDigit(conv.charAt(i))) { i++; }
return Double.parseDouble(conv.substring(i).trim());
}
getSum(String line)
에 루프의 이름을 변경해야합니다. 또한 프로그램에서 이것을 변경했으며 이제 실행되지만 인쇄 작성자와 함께 새 .txt 파일로 성공적으로 인쇄되지 않습니다. 나는 계속 노력할거야! – markersyouStackOverflow는 한 번에 한 가지 질문 만 할 때 가장 효과적입니다. 그러나, 도움이되기를 : 당신의 인쇄 문제는'output.printf' 대신에'System.out.printf'를 사용하는 데 있습니다. 더 많은 도움이 필요하면 PrintWriter에 관한 새로운 질문을하십시오. 이 질문과 답변은 귀하의 NFE 문제에 초점을 맞추어야합니다. – AJNeufeld