2016-09-22 2 views
-1
$GPGGA,013810.000,1437.9098,N,12100.2297,E,1,10,1.0,26.4,M,39.1,M,,0000*69 
$GPRMC,013810.000,A,1437.9098,N,12100.2297,E,0.00,122.34,200916,,,A*6A 
$GPGGA,013811.000,1437.9098,N,12100.2297,E,1,10,1.0,26.4,M,39.1,M,,0000*69 
$GPRMC,013811.000,A,1437.9098,N,12100.2297,E,0.00,122.34,200916,,,A*6A 
$GPGGA,013812.000,1437.9098,N,12100.2297,E,1,10,1.0,26.4,M,39.1,M,,0000*69 
$GPRMC,013812.000,A,1437.9098,N,12100.2297,E,0.00,122.34,200916,,,A*6A 

매초 String 변수에 NMEA 문자열을 연결합니다. 내가 원하는 것은 시간과 날짜가 필요하기 때문에 마지막 $ GPGGA와 GPRMC를 얻는 것뿐입니다. 그렇게 할 수있는 방법이 있습니까? 선배 들께 감사드립니다.자바에서 문자열의 마지막 줄을 얻는 방법

+2

온라인 종료자를 분리하고 마지막으로 반환 된 요소를 사용하십시오. –

+0

라인 터미네이터 란 무엇입니까? 미안 해요. 자바 개발의 초보자 일뿐입니다. 그런데 모두 1 String 변수입니다. – CeciliA

+0

String의 lastIndexOf 함수를 사용하여 $ GPRMC 및 $ GPGGA의 마지막 항목을 찾은 다음 문자열의 쉼표로 하위 문자열을 지정한 다음 해당 배열의 11 개 항목 만 가져올 수 있습니다. – mhasan

답변

0

는 다음과 같은 경우 :

String a = "$GPGGA,013812.000,1437.9098,N,12100.2297,E,1,10,1.0,26.4,M,39.1,M,,0000*69"; 
String b = "$GPRMC,013812.000,A,1437.9098,N,12100.2297,E,0.00,122.34,200916,,,A*6A"; 

는 그런 다음 ","기호에 각 분할 :

String[] aAry = a.split(","); 
String[] bAry = b.split(","); 

내가 각 배열의 두 번째 요소를 생각 (인덱스 1) 그래서 시간이 포함 문자열 013812.000을 포함하는 aAry[1] (예 : bAry[1])으로 액세스 할 수 있습니다. 날짜가이 문자열에 저장되는 위치를 잘 모르겠습니다.

+0

모두 변수가 하나입니다. 매초마다 그것을 연결합니다. 마지막 $ GPGGA와 $ GPRMC를 얻으려면 어떻게해야합니까? – CeciliA

+0

날짜가 $ GPRMC 행에있는 경우 형식은 MMDDYY 인 200916입니다. – CeciliA

+0

연결 문자열을 포함하는 String의 이름이 bigString이면, String [] stringArray = bigString.split ("\ n"); 그리고 stringArray [stringArray.size() - 1] 끈. 그런 다음 필요에 따라 마지막 문자열에서 날짜와 시간을 제거 할 수 있습니다. – PEF

관련 문제