5 使用對象-[Java學(xué)習(xí)筆記]

習(xí)題

1單詞長度(5分)

題目內(nèi)容:

你的程序要讀入一行文本,其中以空格分隔為若干個單詞,以‘.’結(jié)束溉旋。你要輸出這行文本中每個單詞的長度。這里的單詞與語言無關(guān)嫉髓,可以包括各種符號观腊,比如“it's”算一個單詞,長度為4算行。注意梧油,行中可能出現(xiàn)連續(xù)的空格。

輸入格式:

輸入在一行中給出一行文本州邢,以‘.’結(jié)束儡陨,結(jié)尾的句號不能計(jì)算在最后一個單詞的長度內(nèi)。

輸出格式:

在一行中輸出這行文本對應(yīng)的單詞的長度量淌,每個長度之間以空格隔開骗村,行末沒有最后的空格。

輸入樣例:

It's great to see you here.

輸出樣例:

4 5 2 3 3 4

思路

  1. in.next讀取單詞呀枢;
  2. 通過判斷讀入內(nèi)容是否與.相同來判斷是否有單詞輸入叙身;
  3. 通過判斷讀入內(nèi)容是否含有.來判斷是否為最后一個單詞,并調(diào)整輸出硫狞。

代碼

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        int len, flag = 0;
        String word = in.next();
        while(word.equals(".") == false) {  //通過判斷讀入內(nèi)容是否與`.`相同來判斷是否有單詞輸入
            if(flag == 0) {      //flag用于控制空格輸出
                flag = 1;
            }
            else {
                System.out.print(" ");
            }
            if(word.indexOf('.') == -1) {    //通過判斷讀入內(nèi)容是否含有`.`來判斷是否為最后一個單詞
                System.out.print(word.length());
            }else {
                System.out.print(word.length() - 1);
            }
            word = in.next();
        }
        
    }
}

2GPS數(shù)據(jù)處理(5分)

題目內(nèi)容:

NMEA-0183協(xié)議是為了在不同的GPS(全球定位系統(tǒng))導(dǎo)航設(shè)備中建立統(tǒng)一的BTCM(海事無線電技術(shù)委員會)標(biāo)準(zhǔn),由美國國家海洋電子協(xié)會(NMEA-The National Marine Electronics Associa-tion)制定的一套通訊協(xié)議。GPS接收機(jī)根據(jù)NMEA-0183協(xié)議的標(biāo)準(zhǔn)規(guī)范残吩,將位置财忽、速度等信息通過串口傳送到PC機(jī)、PDA等設(shè)備泣侮。
NMEA-0183協(xié)議是GPS接收機(jī)應(yīng)當(dāng)遵守的標(biāo)準(zhǔn)協(xié)議即彪,也是目前GPS接收機(jī)上使用最廣泛的協(xié)議,大多數(shù)常見的GPS接收機(jī)活尊、GPS數(shù)據(jù)處理軟件隶校、導(dǎo)航軟件都遵守或者至少兼容這個協(xié)議。
NMEA-0183協(xié)議定義的語句非常多蛹锰,但是常用的或者說兼容性最廣的語句只有$GPGGA深胳、$GPGSA、$GPGSV铜犬、$GPRMC舞终、$GPVTG、$GPGLL等癣猾。

其中$GPRMC語句的格式如下:
$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50

這里整條語句是一個文本行敛劝,行中以逗號“,”隔開各個字段,每個字段的大蟹子睢(長度)不一夸盟,這里的示例只是一種可能,并不能認(rèn)為字段的大小就如上述例句一樣像捶。
字段0:$GPRMC上陕,語句ID,表明該語句為Recommended Minimum Specific GPS/TRANSIT Data(RMC)推薦最小定位信息
字段1:UTC時間作岖,hhmmss.sss格式
字段2:狀態(tài)唆垃,A=定位,V=未定位
字段3:緯度ddmm.mmmm痘儡,度分格式(前導(dǎo)位數(shù)不足則補(bǔ)0)
字段4:緯度N(北緯)或S(南緯)
字段5:經(jīng)度dddmm.mmmm辕万,度分格式(前導(dǎo)位數(shù)不足則補(bǔ)0)
字段6:經(jīng)度E(東經(jīng))或W(西經(jīng))
字段7:速度,節(jié)沉删,Knots
字段8:方位角渐尿,度
字段9:UTC日期,DDMMYY格式
字段10:磁偏角矾瑰,(000 - 180)度(前導(dǎo)位數(shù)不足則補(bǔ)0)
字段11:磁偏角方向砖茸,E=東W=西
字段16:校驗(yàn)值
這里,“*”為校驗(yàn)和識別符殴穴,其后面的兩位數(shù)為校驗(yàn)和凉夯,代表了“$”和“*”之間所有字符(不包括這兩個字符)的異或值的十六進(jìn)制值货葬。上面這條例句的校驗(yàn)和是十六進(jìn)制的50,也就是十進(jìn)制的80劲够。
提示:^運(yùn)算符的作用是異或震桶。將$和*之間所有的字符做^運(yùn)算(第一個字符和第二個字符異或,結(jié)果再和第三個字符異或征绎,依此類推)之后的值對65536取余后的結(jié)果蹲姐,應(yīng)該和*后面的兩個十六進(jìn)制數(shù)字的值相等,否則的話說明這條語句在傳輸中發(fā)生了錯誤人柿。注意這個十六進(jìn)制值中是會出現(xiàn)A-F的大寫字母的柴墩。另外,如果你需要的話凫岖,可以用Integer.parseInt(s)從String變量s中得到其所表達(dá)的整數(shù)數(shù)字江咳;而Integer.parseInt(s, 16)從String變量s中得到其所表達(dá)的十六進(jìn)制數(shù)字

現(xiàn)在,你的程序要讀入一系列GPS輸出隘截,其中包含$GPRMC扎阶,也包含其他語句。在數(shù)據(jù)的最后婶芭,有一行單獨(dú)的
END
表示數(shù)據(jù)的結(jié)束东臀。

你的程序要從中找出$GPRMC語句,計(jì)算校驗(yàn)和犀农,找出其中校驗(yàn)正確惰赋,并且字段2表示已定位的語句,從中計(jì)算出時間呵哨,換算成北京時間赁濒。一次數(shù)據(jù)中會包含多條$GPRMC語句,以最后一條語句得到的北京時間作為結(jié)果輸出孟害。

你的程序一定會讀到一條有效的$GPRMC語句拒炎。

輸入格式:

多條GPS語句,每條均以回車換行結(jié)束挨务。最后一行是END三個大寫字母击你。

輸出格式:

6位數(shù)時間,表達(dá)為:
hh:mm:ss
其中谎柄,hh是兩位數(shù)的小時丁侄,不足兩位時前面補(bǔ)0;mm是兩位數(shù)的分鐘朝巫,不足兩位時前面補(bǔ)0鸿摇;ss是兩位數(shù)的秒,不足兩位時前面補(bǔ)0劈猿。

輸入樣例:

$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50
END

輸出樣例:

10:48:13

思路

這道題題目冗長拙吉,實(shí)際有效的信息不多:

  • 有效語句要求字段0為$GPRMC潮孽;
  • 有效語句要求字段2為A
  • *后的校驗(yàn)值為十六進(jìn)制數(shù)庐镐;
  • 有效語句要求$和*之間字符的異或值對65536取余后的值與校驗(yàn)值相等;
  • 以END為結(jié)束輸入標(biāo)志恩商;
  • 輸出時以最后一條有效語句的信息為準(zhǔn);
  • 輸出時必逆,時分秒均輸出兩位數(shù);
  • 注意將語句中的時間轉(zhuǎn)換成北京時間揽乱;

代碼

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        String str;

        String h = null, m = null, s = null;
        str = in.nextLine();
        while(str.equals("END") == false && str.length() > 6) {
            int xor1 = 0, xor2 = 1, oh;
            String gps;
            char posi = 'V', c;
            int countd = 0, flag = 0;
            gps = str.substring(0, 6);
            if(gps.equals("$GPRMC")) {
                for(int i = 1; i < str.length() - 2; i++) {    //遍歷字符串
                    
                    c = str.charAt(i);
                    if(c == '*') {    //獲得校驗(yàn)值
                        xor2 = Integer.valueOf(str.substring(i+1, i+3), 16);
                        flag = 2;
                    }
                    if(flag < 2) {    //取異或值
                        xor1 = xor1 ^ str.charAt(i);
                    }
                    if(c == ',') {
                        countd++;
                    }
                    if(countd == 2 && flag == 0) {    //獲得字段2信息
                        posi = str.charAt(i+1);
                        flag = 1;
                    }
                    
                }
            }
            xor1 = xor1 % 65536;
            if(xor1 == xor2 && posi == 'A') {    //時間轉(zhuǎn)換
                oh = Integer.parseInt(str.substring(7,9));
                if(oh < 16) {
                    oh += 8;
                }
                else {
                    oh += 8 - 24;
                }
                h = String.format("%02d", oh);
                m = str.substring(9, 11);
                s = str.substring(11,13);
            }
            str = in.nextLine();
        }
        System.out.print(h+":"+m+":"+s);
    }
}

---END---

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末名眉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凰棉,更是在濱河造成了極大的恐慌损拢,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撒犀,死亡現(xiàn)場離奇詭異福压,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)或舞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門荆姆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人映凳,你說我怎么就攤上這事胆筒。” “怎么了诈豌?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵仆救,是天一觀的道長。 經(jīng)常有香客問我矫渔,道長彤蔽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任庙洼,我火速辦了婚禮顿痪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘送膳。我一直安慰自己员魏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布叠聋。 她就那樣靜靜地躺著撕阎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碌补。 梳的紋絲不亂的頭發(fā)上虏束,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天棉饶,我揣著相機(jī)與錄音,去河邊找鬼镇匀。 笑死照藻,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的汗侵。 我是一名探鬼主播幸缕,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晰韵!你這毒婦竟也來了发乔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤雪猪,失蹤者是張志新(化名)和其女友劉穎栏尚,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體只恨,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡译仗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了官觅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纵菌。...
    茶點(diǎn)故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖缰猴,靈堂內(nèi)的尸體忽然破棺而出产艾,到底是詐尸還是另有隱情,我是刑警寧澤滑绒,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布闷堡,位于F島的核電站,受9級特大地震影響疑故,放射性物質(zhì)發(fā)生泄漏杠览。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一纵势、第九天 我趴在偏房一處隱蔽的房頂上張望踱阿。 院中可真熱鬧,春花似錦钦铁、人聲如沸软舌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽佛点。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間超营,已是汗流浹背鸳玩。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留演闭,地道東北人不跟。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像米碰,于是被迫代替她去往敵國和親窝革。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 1见间、 單詞長度 題目內(nèi)容: 你的程序要讀入一行文本聊闯,其中以空格分隔為若干個單詞,以‘.’結(jié)束米诉。你要輸出這行文本中每...
    godfrey_88閱讀 860評論 0 1
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 10,930評論 6 13
  • 你能了解魏身,一個喜歡漫畫的人惊橱,對漫畫那種執(zhí)著與熱情是什么感受嗎?我想箭昵,興趣税朴,是一個人的精神之柱。同時家制,也是對...
    superain7閱讀 1,081評論 6 16
  • 你遲遲不來正林, 我在等你的時候, 一個人迷了路颤殴, 原來在錯的時間里觅廓, 一切都是錯覺。 多敬了自己幾杯涵但, 沒有過如此貪...
    沫柏閱讀 259評論 2 1
  • 在我輔導(dǎo)上初中的女兒時杈绸,創(chuàng)建了兩個學(xué)習(xí)輔助網(wǎng)站:一個是魯教5+4版初中英語背單詞工具網(wǎng)站[http://idanc...
    fanzhh閱讀 2,894評論 2 6