• Java输入输出、常见场景解决方案、文件夹操作


    目录

    0.常用方法 String、Integer、List、Queue、Stack、HashMap

    1. 输入 Scanner、BufferReader

    2. 输出 print

    3. 文件夹操作


    0.常用方法

    • int a = sc.nextInt();        int a = Integer.parseInt(str);        String str = sc.nextline();   
    • String[] strs = str.split(" ");    str.substring(startend)左闭右开
    • str.length();    str.charAt(0);    str.IndexOf('ch');    str.equals("xx")
      • Queue:offer入,poll出,peek
      • Stack :push入,pop出,peek
      • xx.size()    xx.isEmpty()    xx.contians()    xx.clear()
      • Map map = new HashMap<>();
      • map.put(k, v) 添加值   map.get(k)   map.containsKey("xxx") 是否包含某key
      • List list = new ArrayList<>();
      • list.add()    list.get()    list.sort();排序      list.sort( (a,b) -> b - a);倒序
      • Collections.sort(list, (a, b) -> b - a);     倒序
    • Arrays.sort(str);数组顺序       Arrays.toString(str)数组转字符串
    • Arrays.stream(str).boxed().sorted((a, b) -> b - a).mapToInt(p -> p).toArray();数组倒序

    1. 输入

    Scanner 读入

    import java.util.*;       Scanner sc = new Scanner(System.in).useDelimiter("\\D")设置忽略的分隔符

    • sc.nextLine()        读一行内容,获得 /n 之前的所有内容为字符串String(可用于读取空行)
    • sc.nextInt()           读下一个字符返回Int型,忽略之间的空格/Tab/Enter等
    • sc.next()               读下一个有效字符串,返回字符串String
    • sc.hasNextLine()  判断有没有下一行,返回True/False
    • Integer.parseInt(string)   字符串转换为Int整型

    连续数字,空格分隔直接读:

    1. // 读入一行n,第二行存入数组(法一)
    2. Scanner sc = new Scanner(System.in);
    3. int n = sc.nextInt();
    4. int[] arr = new int[n];
    5. for (int i = 0; i < n; i++) {
    6. arr[i] = sc.nextInt();
    7. }

    读入以空格/逗号分隔的数组:

    1. // 读入首行 n 和 k (法二)
    2. Scanner sc = new Scanner(System.in);
    3. String[] line1 = sc.nextLine().split(" ");
    4. int n = Integer.parseInt(line1[0]);
    5. int k = Integer.parseInt(line1[1]);
    6. // 存入数组(以空格或逗号分隔的数据)
    7. String[] line2 = sc.nextLine().split(" ");
    8. int[] arr = new int[n];
    9. for (int i = 0; i < line2.length; i++) {
    10. arr[i] = Integer.parseInt(line2[i]);
    11. }

    读入带框数组/链表:

    1. Scanner sc = new Scanner(System.in);
    2. String strs = sc.nextLine();
    3. // 处理字符串
    4. // 输入格式不标准直接return
    5. if (strs == null || strs.charAt(0) != '[' || strs.charAt(strs.length()-1) != ']') return;
    6. String[] str = strs.substring(1,strs.length()-1).split(",");
    7. //长度唯一的特殊情况直接return
    8. if (str.length == 1) System.out.println(strs);return;
    9. long[] nums = new long[str.length];
    10. for (int i = 0; i < str.length; i++) {
    11. nums[i] = Long.parseLong(str[i]);
    12. }

    BufferReader 读入

    import java.io.*;     BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

    • br.readline()        按行读取,返回String字符串
      • String str = br.readline();        读取一行字符串
      • String[] strs = br.readline().split(" ");    读取一行字符串,按空格分隔为字符串数组
    1. public static void main(String[] args) throws IOException {
    2. BufferedReader br=new BufferedReader(new InputStreamReader(System.in));//创建实例
    3. String str = br.readLine(); //读取一行字符串
    4. String[] temp=br.readLine().split(" "); //读取一行字符串,按空格分隔为字符串数组

    2. 输出

    空格分隔输出数组

    1. // 输出数组,以空格分隔
    2. public static void printarr(int[] arr) {
    3. for (int i = 0; i < arr.length; i++) {
    4. if (i != arr.length-1) {
    5. System.out.print(arr[i] + " ");
    6. } else {
    7. System.out.print(arr[i]);
    8. }
    9. }
    10. }

    按照带框格式输出链表:

    1. // 按格式输出链表
    2. public static void PrintList(ListNode head) {
    3. if (head == null) return;
    4. ListNode cur = head.next;
    5. System.out.print("{" + head.val);
    6. while (cur != null) {
    7. System.out.print("," + cur.val);
    8. cur = cur.next;
    9. }
    10. System.out.print("}");
    11. }

    3. 文件夹操作

  • 相关阅读:
    C语言tips-NULL指针和void指针
    获取苏宁易购商品信息操作详情
    【思考】我为钱工作 OR 钱为我工作?
    【Java高级技术】动态代理
    Python可视化数据分析08、Pandas_Excel文件读写
    P4867 Gty的二逼妹子序列(莫队+值域分块)
    docker构建镜像上传到DockerHub
    MIT6.S081 2021 file system
    (2023|ICLR,检索引导,交叉引导,EntityDrawBench)Re-Imagen:检索增强的文本到图像生成器
    Linux- tmux工具的使用
  • 原文地址:https://blog.csdn.net/qq_52057693/article/details/126330010