package hello;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.nextLine() ;
int a ;
boolean ccc = false ;
String h = null,min = null,ss = null ;
for (; !s.equals("END");)
{
if (s.startsWith("$GPRMC"))
{
int loc = s.indexOf("*") ;
String num = s.substring(loc + 1 ) ; //num为校验值
s = s.substring(1, loc) ;// s为$和*之间的字符串
String[] arr = s.split(",") ; //以","拆分字符串
if ( arr[2].equals("A") )//进而判断是否定位
{
// s = s.replace(",", "") ;
//s = GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A
// char[] p = s[0].toCharArray() ;
a = s.charAt(0) ^ s.charAt(1) ;
for (int j = 2 ; j < s.length() ; j++ )
{
a ^= s.charAt(j) ;
}
//整个字符串进行^运算之后的a
a %= 65536 ;
int f = Integer.parseInt(num, 16) ;
if (a == f)
{
ccc = true ;
h = s.substring(6, 8) ;
min = s.substring(8, 10) ;
ss = s.substring(10, 12) ;
}
}
}
s = in.nextLine() ;
}
if (ccc)
{
int q = Integer.parseInt(h) ;
if (q > 15 )
{
q = q - 15 ;
}
else
{
q += 8 ;
}
if (q < 10)
{
System.out.print("0" );
}
System.out.print(q + ":") ;
int w = Integer.parseInt(min) ;
if (w < 10)
{
System.out.print("0" );
}
System.out.print(w + ":") ;
int e = Integer.parseInt(ss) ;
if (e < 10)
{
System.out.print("0");
}
System.out.print( e ) ;
}
}
} Java应用基础_GPS数据处理
最新推荐文章于 2021-05-17 14:45:16 发布
这段Java代码读取GPS数据,寻找特定的$GPRMC标记,验证校验值并解析时间信息。如果找到有效定位,将小时、分钟和秒转换为标准格式输出。
2862

被折叠的 条评论
为什么被折叠?



