日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

蓝桥杯Java输入输出相关

發布時間:2025/5/22 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯Java输入输出相关 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自:http://blog.csdn.net/Chen_Tongsheng/article/details/53354169

一、注意點? ?

1. 類名稱必須采用public class Main方式命名

2. 在有些OJ系統上,即便是輸出的末尾多了一個“ ”,程序可能會輸出錯誤

3. 有些OJ上的題目會直接將OI上的題目拷貝過來,所以即便是題目中有輸入和輸出文件,可能也不需要,因為在OJ系統中一般是采用標準輸入輸出,不需要文件

4. 在有多行數據輸入的情況下,一般按以下代碼示例處理:

import java.util.Scanner; import java.io.*; public class Main{ public static void main(String[] args){ Scanner in1 = new Scanner(System.in); Scanner in2 = new Scanner(new BufferedInputStream(System.in));//輸入速度較前者 in1 要快,但但一般不用這個BufferedInputStream緩存 //輸入多組測試數據一般用:while(in1.hasNextInt()) 或者是 while(in1.hasNext()) } } 5.?有關System.nanoTime()函數的使用,該函數用來返回最準確的可用系統計時器的當前值,以毫微秒為單位。 long startTime = System.nanoTime(); // Code... 運用算法來解決問題的運行代碼 long estimatedTime = System.nanoTime() - startTime;

?

二、輸入輸出處理

由于ACM競賽題目的輸入數據和輸出數據一般有多組(不定),并且格式多種多樣,所以,如何處理題目的輸入輸出是對大家的一項最基本的要求。這也是困擾初學者的一大問題。

1. 輸入

格式1:Scanner sc = new Scanner (new BufferedInputStream(System.in));
格式2:Scanner sc = new Scanner (System.in);
在讀入數據量大的情況下,格式1的速度會快些。
讀一個整數: int n = sc.nextInt(); 相當于 scanf("%d", &n); 或 cin >> n;?
讀一個字符串:String s = sc.next(); 相當于 scanf("%s", s); 或 cin >> s;?
讀一個浮點數:double t = sc.nextDouble(); 相當于 scanf("%lf", &t); 或 cin >> t;?
讀一整行: String s = sc.nextLine(); 相當于 gets(s); 或 cin.getline(...);?
判斷是否有下一個輸入可以用sc.hasNext()或sc.hasNextInt()或sc.hasNextDouble()或sc.hasNextLine()

例1:讀入整數
Input ?輸入數據有多組,每組占一行,由一個整數組成。?
Sample Input?
56
67
100
123?

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { // 判斷是否結束 int num = in.nextInt();// 讀入整數 } } }

?

?

例2:讀入實數
?
輸入數據有多組,每組占2行,第一行為一個整數N,指示第二行包含N個實數。
Sample Input
4?
56.9 ?67.7 ?90.5 ?12.8?
5?
56.9 ?67.7 ?90.5 ?12.8?

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int n = sc.nextInt(); for (int i = 0; i < n; i++) { double a = sc.nextDouble(); } } } }

例3:讀入字符串【杭電2017 字符串統計】
輸入數據有多行,第一行是一個整數n,表示測試實例的個數,后面跟著n行,每行包括一個由字母和數字組成的字符串。


Sample Input ?
2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int i = 0; i < n; i++) { String str = sc.next(); } } } import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine()); for (int i = 0; i < n; i++) { String str = sc.nextLine(); } } }

例3:讀入字符串【杭電2005 第幾天?】
給定一個日期,輸出這個日期是該年的第幾天。?
Input ?輸入數據有多組,每組占一行,數據格式為YYYY/MM/DD組成
1985/1/20
2006/3/12

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine()); for (int i = 0; i < n; i++) { String str = sc.nextLine(); } } }

2. 輸出??

函數:
System.out.print();?
System.out.println();?
System.out.format();
System.out.printf(); ?

3.?規格化的輸出

函數:
//?這里0指一位數字,#指除0以外的數字(如果是0,則不顯示),四舍五入.
????DecimalFormat?fd?=?new?DecimalFormat("#.00#");
????DecimalFormat?gd?=?new?DecimalFormat("0.000");
????System.out.println("x?="?+?fd.format(x));
????System.out.println("x?="?+?gd.format(x));

import java.util.Scanner; public class Main { public static void main(String[] args) { NumberFormat formatter = new DecimalFormat("000000"); String s = formatter.format(-1234.567); // -001235 System.out.println(s); formatter = new DecimalFormat("##"); s = formatter.format(-1234.567); // -1235 System.out.println(s); s = formatter.format(0); // 0 System.out.println(s); formatter = new DecimalFormat("##00"); s = formatter.format(0); // 00 System.out.println(s); formatter = new DecimalFormat(".00"); s = formatter.format(-.567); // -.57 System.out.println(s); formatter = new DecimalFormat("0.00"); s = formatter.format(-.567); // -0.57 System.out.println(s); formatter = new DecimalFormat("#.#"); s = formatter.format(-1234.567); // -1234.6 System.out.println(s); formatter = new DecimalFormat("#.######"); s = formatter.format(-1234.567); // -1234.567 System.out.println(s); formatter = new DecimalFormat(".######"); s = formatter.format(-1234.567); // -1234.567 System.out.println(s); formatter = new DecimalFormat("#.000000"); s = formatter.format(-1234.567); // -1234.567000 System.out.println(s); formatter = new DecimalFormat("#,###,###"); s = formatter.format(-1234.567); // -1,235 System.out.println(s); s = formatter.format(-1234567.890); // -1,234,568 System.out.println(s); // The ; symbol is used to specify an alternate pattern for negative // values formatter = new DecimalFormat("#;(#) "); s = formatter.format(-1234.567); // (1235) System.out.println(s); // The ' symbol is used to quote literal symbols formatter = new DecimalFormat(" '# '# "); s = formatter.format(-1234.567); // -#1235 System.out.println(s); formatter = new DecimalFormat(" 'abc '# "); s = formatter.format(-1234.567); // - abc 1235 System.out.println(s); formatter = new DecimalFormat("#.##%"); s = formatter.format(-12.5678987); System.out.println(s); } }

4.?字符串處理?String

String?類用來存儲字符串,可以用charAt方法來取出其中某一字節,計數從0開始:?

String?a?=?"Hello";?//?a.charAt(1)?=?'e'?

用substring方法可得到子串,如上例?

System.out.println(a.substring(0,?4))?//?output?"Hell"?

注意第2個參數位置上的字符不包括進來。這樣做使得?s.substring(a,?b)?總是有?b-a個字符。?

字符串連接可以直接用?+?號,如?

String?a?=?"Hello";?

String?b?=?"world";?

System.out.println(a?+?",?"?+?b?+?"!");?//?output?"Hello,?world!"?

如想直接將字符串中的某字節改變,可以使用另外的StringBuffer類。?

?

5.?高精度

BigInteger和BigDecimal可以說是acmer選擇java的首要原因。
函數:add,?subtract,?divide,?mod,?compareTo等,其中加減乘除模都要求是BigInteger(BigDecimal)和BigInteger(BigDecimal)之間的運算,所以需要把int(double)類型轉換為BigInteger(BigDecimal),用函數BigInteger.valueOf().

import java.io.BufferedInputStream; import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = new Scanner (new BufferedInputStream(System.in)); int a = 123, b = 456, c = 7890; BigInteger x, y, z, ans; x = BigInteger.valueOf(a); y = BigInteger.valueOf(b); z = BigInteger.valueOf(c); ans = x.add(y); System.out.println(ans); ans = z.divide(y); System.out.println(ans); ans = x.mod(z); System.out.println(ans); if (ans.compareTo(x) == 0) System.out.println("1"); } }

?

6.?進制轉換

String?st?=?Integer.toString(num,?base);?//?把num當做10進制的數轉成base進制的st(base?<=?35).
int?num?=?Integer.parseInt(st,?base);?//?把st當做base進制,轉成10進制的int(parseInt有兩個參數,第一個為要轉的字符串,第二個為說明是什么進制).??
BigInter?m?=?new?BigInteger(st,?base);?//?st是字符串,base是st的進制.

?

?7.?數組排序

函數:Arrays.sort();

?

轉載于:https://www.cnblogs.com/pomodoro/p/8525717.html

總結

以上是生活随笔為你收集整理的蓝桥杯Java输入输出相关的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线观看一二区 | 亚洲精品乱码久久久久久久久久久久 | 夜夜伊人 | 日韩av.com | 奇米影视第四色888 免费观看a毛片 | 天天干天天添 | 欧美男人操女人 | av秋霞| 欧美精选一区 | 91黄色免费版 | 亚洲精品女人久久久 | 四虎一国产精品一区二区影院 | 国产高清在线 | 丝袜美腿av在线 | 99热免费 | zzji欧美大片 | 国产精品老熟女一区二区 | 日本专区在线 | 男人天堂tv| 男人用嘴添女人下身免费视频 | 久久久999久久久 | 伊人69| 国产一区二区网 | 久久久久久久9999 | 操操操综合 | 中文一级片 | 超碰97人人在线 | 在线一级片 | 色网在线看 | 99情趣网 | 日韩在线一二三 | 黄色大片在线 | 黄频在线观看 | 亚洲av无码国产精品久久久久 | 成人av免费在线播放 | 哺乳期给上司喂奶hd | 亚洲xx视频 | 色播激情| 免费在线性爱视频 | 国产成人精品免高潮费视频 | 91麻豆映画传媒 | 综合激情视频 | 成人av毛片 | 欧洲女性下面有没有毛发 | 新香蕉视频 | 又黄又色又爽 | 91青青青| 亚洲黄色在线看 | 久久婷香 | 国产精品一区二区亚洲 | 男人天堂网在线观看 | 婷婷久久久 | 日本久久中文字幕 | 亚洲男人天堂 | 美丽姑娘免费观看在线观看 | 黄色小说视频 | 尹人在线视频 | 中文字幕+乱码+中文字幕明步 | 国产亚洲欧美一区 | 国产三级网 | 青青草狠狠操 | 经典av在线| 欧美三级日本三级 | 欧美日韩二区三区 | a在线观看视频 | 中文字幕最新 | 美妇av| 精品无码成人久久久久久免费 | 国产成人一区二区三区免费看 | 色人天堂 | 一级片免费播放 | 日韩精品自拍 | 国产成人h | 久久水蜜桃 | 999热视频| 日本成人三级 | 午夜少妇久久久久久久久 | 色优久久| 青青草视频在线观看 | 在线欧美日韩国产 | 国产一区二区小视频 | 日本国产精品一区 | 国产免费内射又粗又爽密桃视频 | 特级av | 6080电视影片在线观看 | 色牛av| 99这里都是精品 | wwwwww色| 韩国女主播裸体摇奶 | 久久精品欧美一区 | 韩日精品在线 | 国产精品伦一区二区三级视频 | 久久国产视频播放 | 黄色的网站免费看 | 国产伦精品免费视频 | 国产动漫av | 天天色网站 | 欧美黄色一区二区三区 | 国产精品久久久久久白浆 |