2014-11-30 3 views
-1

내 과제는 adj. 파일에서 그래프의 행렬. 줄 단위로 읽는 것이 좋으며 숫자를 추출하는 방법을 모르겠습니다.파일에서 숫자 추출하기

인덱스 0의 길이가 1 인 for 루프를 수행하고 charAt (i)가 숫자인지 확인하고 싶습니다. 그러나 어떻게해야할지 모르겠습니다. 그것을하는 다른 어떤 방법든지 평가 될 것입니다.

내가 시도 :

for (int i=0;i<s.length()-1;i++){ 
    ch=s.charAt(i); 

    if (ch !=" "){ 

    } 
} 

는 컴파일러는 유효한 인수를했다.

선의 형식은 하나 이상의 공백으로 구분 된 정점입니다.

내장 된 API없이이 작업을 수행 할 수 있다면 가장 좋을 것입니다.

업데이트 : 1) Abbath가 제안하는 분할은 작동하지만 가이드 라인을 자세히 살펴보면 파일이 잘 형성되어 있다는 보장은 아님을 알 수 있습니다.

+0

https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html – Pshemo

+0

String 객체의 경우 비교를 위해 .equals() 메소드를 사용해야 함을 기억하십시오. == 또는! = 당신이하려고하는 것이 아닌 참조를 비교하십시오. –

+0

파일의 형식이 올바른지 확인한 다음 초기 분할 ("") (여기 두 칸 공백)을 사용하여 쌍을 캡처 한 다음 추가 분할 (" ") 쌍의 각 요소를 캡처 할 수있는 또 다른 방법이 될 수 있습니다. – Abbath

답변

0

난 당신이 한 번 읽기 라인을 분할하고 다음 방법으로 저장 요소를 하나씩 전달하여 그 번호를 추출하는 것이 좋습니다. 문자열을 숫자 값으로 변환 할 수 있는지 확인합니다.

public boolean isNumeric(String s) { 
    try { 
     Double.parseDouble(s); 
     return true; 
    } catch (NumberFormatException nfe) { 
     return false; 
    } 
} 
+0

완료. excally 내가 필요로하는. – Voltizar

0

허용되는 경우 스캐너를 사용하여 파일을 읽은 다음 scan.nextInt() 또는 사용하는 유형에 관계없이 숫자에 액세스 할 수 있습니다.

0

귀하의 제안에 감사드립니다. 사용 : size = Integer.parseInt (s);

내 모든 문제가 해결되었습니다.

관련 문제