题库练习2(随机数去重排序、分割字符串、进制转换)
1. 隨機(jī)數(shù)去重排序
明明想在學(xué)校中請(qǐng)一些同學(xué)一起做一項(xiàng)問(wèn)卷調(diào)查,為了實(shí)驗(yàn)的客觀性,他先用計(jì)算機(jī)生成了N個(gè)1到1000之間的隨機(jī)整數(shù)(N≤1000),對(duì)于其中重復(fù)的數(shù)字,只保留一個(gè),把其余相同的數(shù)去掉,不同的數(shù)對(duì)應(yīng)著不同的學(xué)生的學(xué)號(hào)。然后再把這些數(shù)從小到大排序,按照排好的順序去找同學(xué)做調(diào)查。請(qǐng)你協(xié)助明明完成“去重”與“排序”的工作(同一個(gè)測(cè)試用例里可能會(huì)有多組數(shù)據(jù),希望大家能正確處理)。
1.1 分析
去重:Set
排序:TreeSet
多組數(shù)據(jù),要使用sc.hasNext()
import java.util.Scanner; import java.util.TreeSet;public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);while(sc.hasNext()){int n=sc.nextInt();int i=0;TreeSet<Integer> set=new TreeSet<Integer>();while(i<n){set.add(sc.nextInt());i++;}while(!set.isEmpty())System.out.println(set.pollFirst());}} }2.分割字符串
- 連續(xù)輸入字符串,請(qǐng)按長(zhǎng)度為8拆分每個(gè)字符串后輸出到新的字符串?dāng)?shù)組;
- 長(zhǎng)度不是8整數(shù)倍的字符串請(qǐng)?jiān)诤竺嫜a(bǔ)數(shù)字0,空字符串不處理。
2.1 分析
分為三種情況:
注:
1.substring(int beginindex) ?? sustring(int beginindex,int endindex)
- beginIndex -- 起始索引(包括), 索引從 0 開(kāi)始。
- endIndex -- 結(jié)束索引(不包括)。
3. 進(jìn)制轉(zhuǎn)換
寫(xiě)出一個(gè)程序,接受一個(gè)十六進(jìn)制的數(shù)值字符串,輸出該數(shù)值的十進(jìn)制字符串。(多組同時(shí)輸入 )
import java.util.Scanner;public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);while(sc.hasNextLine()){String str=sc.nextLine();getResult(str);}}public static void getResult(String str){char[] chs=str.toCharArray();int len=chs.length-1;int result=0;int num=0;for(int i=len;i>1;i--){switch (chs[i]){case 'A':case 'B':case 'C':case 'D':case 'E':case 'F':num=chs[i]-'7';result+=num*((int)Math.pow(16,(len-i)));break;case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9':num=chs[i]-'0';result+=num*((int)Math.pow(16,(len-i)));break;}}System.out.println(result);} }注:
1.switch用法
package codeAnal;public class SwitchDemo {public static void main(String[] args) {stringTest();breakTest();defautTest();}/** default不是必須的,也可以不寫(xiě)* 輸出:case two*/private static void defautTest() {char ch = 'A';switch (ch) {case 'B':System.out.println("case one");break;case 'A':System.out.println("case two");break;case 'C':System.out.println("case three");break;}}/** case語(yǔ)句中少寫(xiě)了break,編譯不會(huì)報(bào)錯(cuò)* 但是會(huì)一直執(zhí)行之后所有case條件下的語(yǔ)句,并不再進(jìn)行判斷,直到default語(yǔ)句* 下面的代碼輸出: case two* case three*/private static void breakTest() {char ch = 'A';switch (ch) {case 'B':System.out.println("case one");case 'A':System.out.println("case two");case 'C':System.out.println("case three");default:break;}}/** switch用于判斷String類(lèi)型* 輸出:It's OK!*/private static void stringTest() {String string = new String("hello");switch (string) {case "hello":System.out.println("It's OK!");break;default:System.out.println("ERROR!");break;}} }2.ASCII
A的ASCII碼是65,a的ASCII碼是97。
?
總結(jié)
以上是生活随笔為你收集整理的题库练习2(随机数去重排序、分割字符串、进制转换)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 题库练习1(单词长度、统计字符个数、)
- 下一篇: 题库练习3(质因子、取近似值、合并表记录