欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中Scanner使用方式:單行/多行輸入

 更新時(shí)間:2022年05月18日 10:36:04   作者:毅一s  
這篇文章主要介紹了Java中Scanner使用方式:單行/多行輸入,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

問題

解決這種情況下的Scanner輸入:?jiǎn)涡?,多行,?shù)值,字符串

  • 平時(shí)寫程序一般不用Scanner,線上筆試的時(shí)候,各大公司熱衷于Scanner輸入。
  • 平時(shí)用LeetCode刷題也不會(huì)用到,結(jié)果多次在筆試時(shí)候卡在Scanner,特來總結(jié)一波。

最好解決的情況

  • 多行輸入元素,其中第一行幾個(gè)數(shù)字表示下面幾行的個(gè)數(shù)。

以三行輸入為例,第一行輸入兩個(gè)數(shù)字m,n,分別表示數(shù)組num1和num2的長(zhǎng)度,第二行和第三行輸入num1和num2的元素,以空格分隔。

// 輸入如下
3 4
10 2 3 
11 4 5 6

程序如下:

import java.util.Arrays;
import java.util.Scanner;
public class myScanner {
?? ?Scanner sc = new Scanner(System.in);
?? ?public static void main(String[] args) {
?? ??? ?System.out.println("輸入:");
?? ??? ?Scanner sc = new Scanner(System.in);
?? ??? ?int m = sc.nextInt();
?? ??? ?int n = sc.nextInt();
?? ??? ?int[] num1 = new int[m];
?? ??? ?int[] num2 = new int[n];
?? ??? ?// 換成其他數(shù)據(jù)類型也一樣,其他數(shù)值類型就修改int跟nextInt就可以了,
?? ??? ?//String就把nextInt()換成next()
?? ??? ?for(int i = 0; i < m; i ++) {
?? ??? ??? ?num1[i] = sc.nextInt(); ?// 一個(gè)一個(gè)讀取
?? ??? ?}
?? ??? ?for(int i = 0; i < n; i ++) {
?? ??? ??? ?num2[i] = sc.nextInt();
?? ??? ?}
?? ??? ?System.out.println("輸出:");
?? ??? ?System.out.println(Arrays.toString(num1));
?? ??? ?System.out.println(Arrays.toString(num2));
?? ?}
}

運(yùn)行示例:

在這里插入圖片描述在這里插入圖片描述

換成其他數(shù)據(jù)類型也一樣,其他數(shù)值類型就修改int跟nextInt就可以了,String就把nextInt()換成next()

單行輸入多個(gè)參數(shù)

  • 在一行輸入多個(gè)參數(shù)

以空格(也可用其他的符號(hào),不重要)為分割。

// 輸入如下
ABB CCC DDD  EEE 123 435

程序如下:

import java.util.Arrays;
import java.util.Scanner;
public class myScanner {
?? ?Scanner sc = new Scanner(System.in);
?? ?public static void main(String[] args) {
?? ??? ?System.out.println("輸入:");
?? ??? ?Scanner sc = new Scanner(System.in);
?? ??? ?String str = sc.nextLine(); ?// 讀取一行
?? ??? ?System.out.println("輸出:");
?? ??? ?System.out.println(str);
?? ??? ?String[] strIn = str.trim().split(" "); ?// 以空格分割
?? ??? ?System.out.println(Arrays.toString(strIn));
?? ?}
}

讀出來的只能是字符串,如果想全部為數(shù)字,需要將讀出來的字符串強(qiáng)行轉(zhuǎn)換為數(shù)字(parseInt、parseLong等),運(yùn)行示例如下:

在這里插入圖片描述

多行輸入多個(gè)參數(shù),每行參數(shù)個(gè)數(shù)不定

  • 每行輸入不等數(shù)量的參數(shù)

這種情況下,或者可以從題干直接確定行數(shù),或者能夠從輸入的第一行輸入的某個(gè)參數(shù)確定下面還有幾行。

以后者為例進(jìn)行說明,假設(shè)第一行輸入m,n,m表示后面有m行,n表示每行最多有n個(gè)(可用來截?cái)嗄骋恍卸噍斎氲膮?shù),不詳細(xì)分析了)。

// 輸入如下
3 4
AA bcd 123 54
AA BB
A B C

程序如下:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class myScanner {
	Scanner sc = new Scanner(System.in);
	public static void main(String[] args) {
		System.out.println("輸入:");
		Scanner sc = new Scanner(System.in);
		int m = sc.nextInt();
		sc.nextLine();  // 很重要,跳到第二行
		// 若直接確定行數(shù),注釋掉上面兩行,加入下面一行
		// int m = 3;
		String[] strArr = new String[m];
		// 從第二行開始讀取
		for(int i = 0; i < m; i++) {
			strArr[i] = sc.nextLine();
		}
		System.out.println("輸出:");
		System.out.println(Arrays.toString(strArr));
		ArrayList<String[]> strToOne = new ArrayList<String[]>();
		for(int i = 0; i < m; i ++) {
			String[] tmp = strArr[i].trim().split(" ");
			strToOne.add(tmp);
		}
		System.out.println(strToOne);
		// 形象點(diǎn)顯示
		System.out.print("[");
		for(int i = 0; i < strToOne.size(); i++) {
			System.out.print(Arrays.toString(strToOne.get(i)));
			if(i != strToOne.size()-1)
				System.out.print(", ");
		}
		System.out.print("]");
	}
}

運(yùn)行結(jié)果如下:

在這里插入圖片描述

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實(shí)現(xiàn)簡(jiǎn)單堆棧代碼

    Java實(shí)現(xiàn)簡(jiǎn)單堆棧代碼

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單堆棧代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • java this 用法詳解及簡(jiǎn)單實(shí)例

    java this 用法詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了java this 用法詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Spring Boot中Redis數(shù)據(jù)庫(kù)的使用實(shí)例

    Spring Boot中Redis數(shù)據(jù)庫(kù)的使用實(shí)例

    Spring Boot中除了對(duì)常用的關(guān)系型數(shù)據(jù)庫(kù)提供了優(yōu)秀的自動(dòng)化支持之外,對(duì)于很多NoSQL數(shù)據(jù)庫(kù)一樣提供了自動(dòng)化配置的支持。本篇文章主要介紹了Spring Boot中Redis的使用實(shí)例代碼,有興趣的開業(yè)了解一下。
    2017-04-04
  • IDEA代碼規(guī)范&質(zhì)量檢查的實(shí)現(xiàn)

    IDEA代碼規(guī)范&質(zhì)量檢查的實(shí)現(xiàn)

    這篇文章主要介紹了IDEA代碼規(guī)范&質(zhì)量檢查的實(shí)現(xiàn),文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • idea Gradle 控制臺(tái)中文亂碼的解決

    idea Gradle 控制臺(tái)中文亂碼的解決

    通過IDEA執(zhí)行g(shù)radle的任務(wù)時(shí),在終端的輸出出現(xiàn)中文亂碼,本文主要介紹了idea Gradle 控制臺(tái)中文亂碼的解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Hadoop 中 HBase Shell命令的詳解

    Hadoop 中 HBase Shell命令的詳解

    這篇文章主要介紹了Hadoop 中 HBase Shell命令的詳解的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • 基于@PostConstruct注解的使用,解決向靜態(tài)變量注入值

    基于@PostConstruct注解的使用,解決向靜態(tài)變量注入值

    這篇文章主要介紹了基于@PostConstruct注解的使用,解決向靜態(tài)變量注入值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 詳解Spring中Lookup注解的使用

    詳解Spring中Lookup注解的使用

    我們知道在spring容器中單獨(dú)的一個(gè)抽象類是不能成為一個(gè)bean的,那么有沒有辦法呢?這個(gè)時(shí)候我們可以使用Lookup注解,下面跟隨小編看下Spring中Lookup注解的使用
    2021-10-10
  • 淺談HashMap、HashTable的key和value是否可為null

    淺談HashMap、HashTable的key和value是否可為null

    這篇文章主要介紹了淺談HashMap、HashTable的key和value是否可為null,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Springboot?+redis+谷歌開源Kaptcha實(shí)現(xiàn)圖片驗(yàn)證碼功能

    Springboot?+redis+谷歌開源Kaptcha實(shí)現(xiàn)圖片驗(yàn)證碼功能

    這篇文章主要介紹了Springboot?+redis+?歌開源Kaptcha實(shí)現(xiàn)圖片驗(yàn)證碼功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01

最新評(píng)論