Java的输入输出

秋招笔试很多都是要自己写输出输出的,所以对常见的整理一下,后续也会持续更新的~~~

目录

1.java中的Scanner类

1.1next()方法和nextLine()方法的区别

1. next() 方法

示例

2. nextLine() 方法

示例

主要区别

使用场景

2.print类

3.常用的转换函数类 

3.1.String.valueOf

3.2 Integer.parseInt

3.3. toCharArray 

3.4.substring

参数说明

3.5.split方法

参数说明

返回值

3.6.trim方法

3.7.字符串中常用的函数

4.常见输入

4.1.输入是整数序列

4.2.输入整数数组

4.3.输入是字符串数组形式

整体代码如下:

4.4. 输入是字符形式

1.java中的Scanner类

  • hasNext()方法:用于判断方法是否还有输入

  • next()方法:用于读取下一个输入

  • nextLine():用于读取一行输入

  • hasNextInt() 和 nextInt() 读取一个整数

  • hasNextDouble()和nextDouble():读取一个浮点数

1.1next()方法和nextLine()方法的区别

next()方法遇到空格就停止了,而nextLine方法会读取一整行

1. next() 方法

  • 用途next() 方法用于读取输入中的下一个完整的“token”(标记)。一个token通常是由非空白字符组成的序列。
  • 行为:它读取输入直到遇到空白字符(如空格、制表符或换行符),然后停止读取。它不会读取这些空白字符。
  • 返回值:返回的是一个字符串,代表读取的token。
  • 特点:如果输入中的第一个字符是空白字符,next() 将只读取到第一个非空白字符为止。

示例

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scanner.next();
System.out.println("You entered: " + word);

如果用户输入 Hello Worldnext() 将只读取 Hello 并将其返回,而 World 将留在输入缓冲区中。

2. nextLine() 方法

  • 用途nextLine() 方法用于读取输入中的一整行,包括空格。
  • 行为:它从当前位置开始读取,直到遇到换行符(\n),然后停止读取。它会返回包括换行符在内的所有字符,或者直到输入结束。
  • 返回值:返回的是一个字符串,代表读取的整行。
  • 特点nextLine() 会读取并返回当前行的剩余部分,包括任何空白字符。

示例

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a line: ");
String line = scanner.nextLine();
System.out.println("You entered: \"" + line + "\"");

如果用户输入 Hello World 然后按回车,nextLine() 将读取 Hello World 包括后面的换行符,并将其全部返回。

主要区别

  1. 读取内容next() 只读取到下一个空白字符为止,而 nextLine() 读取整行,包括所有空格。
  2. 空白处理next() 忽略空白字符,而 nextLine() 包括空白字符。
  3. 换行符nextLine() 包括换行符在返回的字符串中,而 next() 不包括。

使用场景

  • 使用 next() 当你需要读取单个单词或标记,并且希望自动忽略任何后续的空白。
  • 使用 nextLine() 当你需要读取完整的行,包括所有的空格和制表符。

2.print类

  1. System.out.print()

    • 用于打印信息到控制台,但不会自动换行。如果需要在打印后换行,可以手动添加 \n。 
  2. System.out.println()

    • 用于打印信息到控制台,并在打印结束后自动换行。
  3. System.out.printf()

    用于格式化输出信息到控制台。它允许你控制输出的格式,类似于C语言中的 printf 
// 格式化输出一个带有小数点的数字
        double temperature = 36.5789;
        System.out.printf("当前体温是: %.2f 度\n", temperature);

3.常用的转换函数类 

Java版本:

3.1.String.valueOf

String.valueOf 是一个静态方法,用于将各种数据类型转换为它们的字符串表示形式

方法是 String 类的一个实用工具方法,它可以接受不同类型的参数,如整数、浮点数、对象等,并返回相应的字符串表示。

eg:

int num = 123;
String str = String.valueOf(num);
System.out.println(str); // 输出: "123"

3.2 Integer.parseInt

将字符串转换为整数

String numberStr = "123";
int number = Integer.parseInt(numberStr); // number 变量的值将是 123

3.3. toCharArray 

toCharArray 是一个方法,它属于 String 类和 StringBuilder 类。这个方法用于将字符串或字符串构建器对象转换为字符数组。

String str = "Hello";
char[] charArray = str.toCharArray();
System.out.println(charArray); // 输出: [H, e, l, l, o]

3.4.substring

substring 方法是 String 类的一个非常有用的实例方法,它用于从原始字符串中提取子字符串。

  1. substring(int beginIndex):从 beginIndex 指定的位置开始提取,直到字符串的末尾。
  2. substring(int beginIndex, int endIndex):从 beginIndex 指定的位置开始,到 endIndex 指定的位置结束(但不包括 endIndex 指定的字符)。

参数说明

  • beginIndex:子字符串开始处的索引(包括此索引)。
  • endIndex:子字符串结束处的索引(不包括此索引)。

3.5.split方法

split 方法是 String 类的一个非常有用的方法,它用于根据指定的分隔符将字符串分割成多个子字符串,并返回一个字符串数组。这个方法非常灵活,可以处理各种字符串分割的需求.

split 方法有两种重载形式:

  1. split(String regex):根据给定的正则表达式 regex 将字符串分割成多个子字符串。
  2. split(String regex, int limit):除了根据正则表达式分割字符串外,还可以指定一个限制参数 limit,用于控制返回数组的最大长度。

参数说明

  • regex:一个正则表达式,用于指定分割字符串的规则。
  • limit(可选):一个整数,用于限制返回数组的最大长度。如果省略这个参数,将返回所有分割后的子字符串。

返回值

  • 返回一个字符串数组,包含分割后的所有子字符串。
String str = "one,two,three";
String[] parts = str.split(",");
System.out.println(Arrays.toString(parts)); // 输出:[one, two, three]

3.6.trim方法

number[i].trim是移除字符串两段的空白元素

3.7.字符串中常用的函数

参考链接:

Java常用字符串方法_java字符串方法-CSDN博客

4.常见输入

4.1.输入是整数序列

1,2,3 类似于这样的

        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] nums = new int[n];
        for(int i=0;i<n; i++)
        {
            nums[i]= scanner.nextInt();
        }

4.2.输入整数数组

[1,2,3,0]这样格式的

  • 首先将整数数组转换成字符串
  • 然后去除字符串的收尾[]
  • 用,号进行分割
  • 将字符串转为整数
Scanner scanner = new Scanner(System.in);
        
        // 提示用户输入数组
        System.out.println("请输入一个数组(例如 [1,2,3,4,0]):");
        String input = scanner.nextLine();
        
        // 去除输入字符串的首尾方括号
        input = input.substring(1, input.length() - 1);
        
        // 将输入的字符串分割成单独的数字字符串
        String[] numbers = input.split(",");
        
        // 创建一个数组来存储整数
        int[] array = new int[numbers.length];
        
        // 将字符串数组转换为整数数组
        for (int i = 0; i < numbers.length; i++) {
            array[i] = Integer.parseInt(numbers[i].trim());
        }
        
        // 关闭 Scanner 对象
        scanner.close();

假如这个题是输入一个整数数组然后对其进行排序再输出,后面的输出部分如下:

// 对数组进行排序
        Arrays.sort(array);
        
        // 输出排序后的数组
        System.out.print("排序后的数组: [");
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]);
            if (i < array.length - 1) {
                System.out.print(", ");
            }
        }
        System.out.println("]");

4.3.输入是字符串数组形式

例如这样的格式["a","e"," ","f"]

我们以一个题举例吧,对上面的字符串数组求反变为["f"," ", "e","a"]

读取输入输出的整体思路

  • 去除收尾的方括号
  • 将字符串进行分割(使用到正则表达式)====》转为字符串数组
  • 输出时添加方括号和逗号

整体代码如下:

public class ReverseArray {
    public static void main(String[] args) {
        // 创建一个 Scanner 对象来读取控制台输入
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入一个格式化的字符串数组
        System.out.println("请输入一个字符串数组(例如 [\"a\",\"b\",\"\" ,\"d\" ,\"f\"]):");
        String input = scanner.nextLine();

        // 去除输入字符串的首尾方括号
        input = input.substring(1, input.length() - 1);

        // 将输入的字符串分割成单独的字符串元素
        String[] elements = input.split("\\s*,\\s*");

        for (int i = 0; i < elements.length; i++) {
            System.out.println(elements[i]);
        }

        // 反转数组
        String[] reversedArray = reverseArray(elements);


        // 输出反转后的数组
        System.out.print("反转后的数组: [");
        // boolean isFirst = true; // 用于控制逗号的打印
        for (int i = 0; i < reversedArray.length; i++) {
            System.out.print( reversedArray[i]);
            if (i < reversedArray.length - 1){
                System.out.print(",");
            }
        }
        System.out.println("]");
    }

    // 反转数组的方法
    public static String[] reverseArray(String[] array) {
        // 创建一个新的字符串数组,长度与原数组相同
        String[] reversed = new String[array.length];

        // 遍历原数组,并将元素按相反顺序放入新数组
        for (int i = 0; i < array.length; i++) {
            reversed[i] = array[array.length - 1 - i];
        }

        // 返回反转后的数组
        return reversed;
    }
}

怎么控制什么时候添加和不添加逗号,倒数第二次循环

4.4. 输入是字符形式

后续有新的也会持续更新的~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值