안녕하세요 저는 텍스트 파일에서 읽고 배열 (쉼표로 구분) 각 줄을 저장하고 있습니다. 유일한 문제는 배열의 대부분의 요소가 두 개의 요소가 문자열 인 이중 값입니다. 그 결과 배열을 String [] 배열로 만들어야했습니다. 이 때문에 배열의 double 값에 대한 방정식을 수행 할 때마다 우선 double 값으로 구문 분석해야합니다. 저는 말 그대로이 방정식의 반복 횟수를 1000 회 이상으로 늘 렸습니다. 따라서 코드는 문자열을 계속해서 이중으로 구문 분석합니다. 이것은 비용이 많이 드는 방법으로 내 프로그램 속도를 늦추고 있습니다. 문자열 배열의 값을 double 값으로 변환 할 수있는 더 좋은 방법이 있습니까 아니면 텍스트 파일에서 선을 저장할 때 더 좋은 방법이 있습니까? 여기 자바 - 문자열을 이중으로 변환하는 가장 효율적인 방법
감사
는 배열 중 하나가 내가 텍스트 파일에서 읽은 후 모습입니다 :String[] details = {"24.9", "100.0", "19.2" , "82.0", "Harry", "Smith", "45.0"};
지금은 처음 2 개 요소를 곱하고, 4 제 3의 합에 그것을 추가 할 필요가
및 7 번째 요소. 즉 나는 단지 내가 텍스트 파일 (1000 선)의 모든 한 줄이 작업을 수행해야하는 수치 (당연히 문자열로 저장됩니다) 요소
double score = (Double.parseDouble(details[0]) * Double.parseDouble(details[1])) + Double.parseDouble(details[2]) + Double.parseDouble(details[3]) + Double.parseDouble(details[6]);
을 사용하고 있습니다. 결과적으로이 프로그램은 매우 느리게 실행됩니다. 문자열 값을 double로 변환 할 수있는 더 좋은 방법이 있습니까? 또는 첫 번째 장소에 보관하는 것이 더 나은 방법이 있습니까?
편집 : 나는 느린입니다 코드의 어느 부분을 확인하기 위해 프로파일 러를 사용했다 그리고 내가
왜 ** ** 한번 변환 **하고 결과를 저장하지 않습니까? –
Double.parseDouble()을 5000 번 호출하면 프로그램이 매우 느리게 실행되지 않습니다. – NPE
@OliCharlesworth - 모든 행이 다릅니다. 서로 다른 값들이 포함됩니다. – Matt9Atkins