2016-09-22 9 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 

毎秒私は文字列変数にNMEAの文字列を連結しています。私が望むのは、最後の$ GPGGAとGPRMCを取得することです。なぜなら、私は時間と日付のためにそれを必要としているからです。それを行う方法はありますか?先輩に感謝します。Javaの文字列の最後の行を取得するには

+2

ラインターミネータを分割し、最後に返された要素を使用します。 –

+0

回線終端装置とは何ですか?すみません、私はJava開発の初心者ですが、それらはすべて1文字列変数です。 – 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)の2番目の要素はそれほど時間が含まれていると思います文字列013812.000(bAry[1]のように)を含むaAry[1]としてアクセスできます。私は日付がこれらの文字列のどこに格納されているのか分からない。

+0

これらはすべて1つの変数です。毎秒それを連結しています。最後の$ GPGGAと$ GPRMCはどうすれば入手できますか? – CeciliA

+0

日付は$ GPRMC行にあり、200916で、形式はMMDDYYです。 – CeciliA

+0

連結された文字列を含む文字列の名前が 'bigString'である場合、' string [] stringArray = bigString.split( "\ n"); 'と' stringArray [stringArray.size() - 1] 'は、文字列。その後、必要に応じて最後の文字列から日付と時刻を削除することができます。 – PEF

関連する問題