Scanner用法


目录

1、输入整数、字符串数组

2、输入二维数组

3、输入字符串

4、输入字符串分割为数组

5、连续输入数字和字符串

6、换行输入数字和字符串

7、换行输入数字和字符串(需要包含空格)


1、输入整数、字符串数组

第一行输入n, m

第二行输入n个整数

第三行输入m个字符串

//导入包
import java.util.Scanner;
import java.util.Arrays;public class MyScanner {public static void main(String[] args) {//创建对象Scanner sc = new Scanner(System.in);     System.out.println("输入数据:");  //多行输入int n = sc.nextInt();int m = sc.nextInt();int[] arr = new int[n];  String[] str = new String[m];//int等基本数据类型的数组,用nextInt(),同行或不同都可以for(int i=0; i<n; i++) {arr[i] = sc.nextInt();}//String字符串数组, 读取用next(),以空格划分for(int i=0; i<m; i++) {str[i] = sc.next();}//调用方法进行操作TestSc(n, m, arr);TestStr(str);System.out.println("Test01 End");//关闭sc.close();}public static void TestSc(int n, int m, int[] arr) {System.out.println("数据n:" + n + ", 数据m:" + m);System.out.println(Arrays.toString(arr));}public static void TestStr(String[] str) {System.out.println(Arrays.toString(str));}}

若输入的字符串中想要包含空格,使用scanner.nextLine()换行后用scanner.nextLine()进行读入,见情形7.

2、输入二维数组

第一行输入n, m

第二行开始输入二维数组。

import java.util.Arrays;
import java.util.Scanner;public class MyScanner2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);     System.out.println("输入数据:");  //二维数组int n = sc.nextInt();int m = sc.nextInt();int[][] arr2 = new int[n][m];    System.out.println("Test02 输入二维数组数据:");//可以直接读入for(int i=0; i<n; i++) {for(int j=0; j<m; j++) {arr2[i][j] = sc.nextInt();}}TestSc(n, m, arr2);//关闭sc.close();}public static void TestSc(int n, int m, int[][] arr) {System.out.println("数据n:" + n + ", 数据m:" + m);for(int i=0; i<n; i++) {System.out.println(Arrays.toString(arr[i]));}System.out.println("数组行数: arr.length= "+ arr.length);System.out.println("数组列数: arr[0].length= "+ arr[0].length);}}

3、输入字符串

输入字符串,用空格隔开。

next()和nextLine()区别。

import java.util.Scanner;
/**next()读取到空白停止,在读取输入后将光标放在同一行中。*nextLine()读取到回车停止 ,在读取输入后将光标放在下一行。*/public class MyScanner3 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);      System.out.println("输入字符串:");     //next():只读取输入直到空格。String str = sc.next();//nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号String str2 = sc.nextLine();System.out.println("str:" + str);System.out.println("str2:" + str2);//关闭sc.close();}}

4、输入字符串分割为数组

先用scanner.nextLine()读入字符串,再将字符串分割为字符数组或字符串数组。

import java.util.*;public class MyScanner4 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);    System.out.println("输入字符串数组:");String str;str = sc.nextLine();char[] ch = new char[str.length()];for(int i=0; i<str.length(); i++) {//用charAt();进行定位分隔ch[i] = str.charAt(i);System.out.println(ch[i] + " ");}System.out.println("END");//读入字符串后,用空格分隔为数组String[] strs = str.split(" ");System.out.println(Arrays.toString(strs));}
}

5、连续输入数字和字符串

区别于情形1,对于不能采用for循环的方式获取String。采用情形5,6用来处理。

采用while(scanner.hasNext()) 循环,实现连续输入。

格式:数字,空格,字符串。

或: 数字,回车,字符串

import java.util.Scanner;public class MyScanner5 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()) {                 int n = sc.nextInt();String str = sc.next();Tes(n, str);}sc.close();}public static void Tes(int n, String str) {System.out.println("n = " + n);System.out.println("str = " + str);    System.out.println("str.length = " + str.length());}}

6、换行输入数字和字符串

也采用scanner.nextLine(),将光标移到下一行。再继续读入字符串。

第一行输入整数n,m,第二行开始输入字符串。或

第一行输入整数n,第二行输入m,第三行开始输入字符串。

import java.util.*;public class MyScanner6 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();//注意!!!光标换到下一行sc.nextLine();String s = sc.nextLine();String str = sc.nextLine();System.out.println("n = " + n + " , m = " + m);System.out.println("s = " + s);System.out.println("str = " + str);sc.close();}}

7、换行输入数字和字符串(需要包含空格)

采用scanner.nextLine(),将光标移到下一行。再继续读入字符串。

第一行输入n,

第二行开始输入n行字符串,字符串中包含空格。

import java.util.Scanner;
public class MyScanner7 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();String[] strs = new String[n]; sc.nextLine();for(int i=0; i<n; i++) {String str = sc.nextLine();strs[i] = str;         }Tes2(strs);System.out.println("End");        sc.close();}public static void Tes2(String[] strs) {for(int i=0; i<strs.length; i++) {String str = strs[i];System.out.println(str);}}
}

【Java】输入—Scanner用法(全)相关推荐

  1. java输入Scanner基本用法

    1.基本介绍 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入,每个next获取输入对应的字符. Scanner sc = new Sca ...

  2. java的scanner用法_Java Scanner用法详解

    一.Scanner类简介 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序.它是以前的StringTokenizer和Matcher类之间的某种结合.由于 ...

  3. [转载] Java中Scanner用法总结

    参考链接: Java之Scanner类 最近在做OJ类问题的时候,经常由于Scanner的使用造成一些细节问题导致程序不通过(最惨的就是网易笔试,由于sc死循环了也没发现,导致AC代码也不能通过... ...

  4. java中Scanner用法

    1.导入包,idea可自动导入 import java.util.Scanner; 2.创建一个扫描器对象,用于接收用户输入的数据 Scanner scanner=new Scanner(System ...

  5. java输入scanner 报错_Java常用类:Scanner类

    一.简介 java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入. 二.创建对象 示例: Scanner scanner = new Scanner(Sy ...

  6. Java中Scanner用法总结

    最近在做OJ类问题的时候,经常由于Scanner的使用造成一些细节问题导致程序不通过(最惨的就是网易笔试,由于sc死循环了也没发现,导致AC代码也不能通过...),因此对Scanner进行了一些总结整 ...

  7. java输入scanner 报错_java Scanner报错

    在构造函数里写了一次Scanner到主函数里又需要输入新的数想在用Scanner就报错错误在最后一行publicclassBank{privatestaticdoubledead=0.0265;pri ...

  8. Java Scanner用法详解

    本文转载自: java中的Scanner 百度经验:Java中Scanner类的用法 Java Scanner类报错java.util.NoSuchElementException 一.Scanner ...

  9. Java之Scanner类用法

    1,首先导入类 import java.util.Scanner; 2,创建Scanner类的对象 Scanner input = new Scanner(System.in); 此代码允许用户从Sy ...

最新文章

  1. 探索JAVA并发 - 线程池详解
  2. Java Scoket之java.io.EOFException解决方案
  3. SPOJ Pattern Find(Rabin Karp)
  4. 集芯片的焊接技巧:从LQFP64说起
  5. 如果有一天,我们再见面
  6. cocos2d-x初探学习笔记(17)--瓦片地图集
  7. moss 搜索 属性过滤 值被移除了
  8. 将手机浏览器下载的.ts格式的视频片段合并的方法
  9. hg8245c backupsettings.html,如何通过中国电信光猫华为HG8245C打开IPV6
  10. 华中数控808系统说明书_智能制造之高端数控系统龙头
  11. python视频补帧_视频补帧软件(DAIN APP)
  12. 数字化是新物流的基础
  13. 区块链上的随机性(一)概述与构造
  14. [智慧供热]-论供热收费系统价值和意义?
  15. 高质量 C++/C 编程指南
  16. 独家 | 木瓜移动将冲刺香港上市:已任命刘凡为新CFO,赵巨涛退出
  17. 学完这些图像处理,我拿去给女友修了图...
  18. Java Applet基础
  19. 4、操作系统内存管理——页面的换入换出
  20. 【WLAN】【调试】使用wireshark过滤802.11各种报文(49种,全网最全)

热门文章

  1. 欧阳自远:目前要把火星改造为人类适宜需要100年到200年
  2. 原有人陪你颠沛流离-卢思浩
  3. [转]聚类算法实践(1)—— 层次、K-means聚类
  4. 人工智能开发工资多少钱?
  5. 【计算机网络】实验四 应用层和传输层协议分析(PacketTracer)
  6. 使用 Istio 实现非侵入流量治理
  7. 【每日一题】Steps to One (容斥+错位相减)cf1139D
  8. 字符流(FileReader,FileWriter,BufferedReader,BufferedWriter)
  9. 曼慧尼特u检验(两个样本数据间有无差异)
  10. 【NYOJ】取石子系列总结(十一题全)