zoukankan      html  css  js  c++  java
  • 牛客编程tips(数组、列表、字符串)

    牛客编程tips(数组、列表、字符串)

    一、输入输出一般技巧

    1、解决多行的输入输出

    描述

    image-20200728124344622

    image-20200728124352851

    Java代码

    public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int m = sc.nextInt();
            int[][] arr = new int[n][m];
            for(int i=0;i<n;i++){
                for(int j = 0;j<m;j++){
                    arr[i][j] = sc.nextInt();
                }
            }
            //System.out.println(minPathSum(arr));
    

    二、数组/集合一般技巧

    2、获取数组任意子串

    //2 获取数组任意子串
            //2.1 任意指定位置
            int[] arr1 = {1, 2, 3, 4, 5, 6, 7, 8};
            int[] subarr = Arrays.copyOfRange(arr1,0,3);  //[0,3)
            System.out.println(Arrays.toString(subarr));   //[1,2,3]
    
            //2.2 指定从头获取出n个元素
            int[] subarr2 = Arrays.copyOf(arr1,4);
            System.out.println(Arrays.toString(subarr2));   //[1,2,3,4] 从数组头复制出4个元素
    

    3、String数组转List

    String[] strings = {"1", "2", "3"};
    List<String> strings1 = Arrays.asList(strings);
    

    4、int数组转List

    //方法1:
            int[] arr4 = {1, 2, 3, 4, 5, 6, 7};
            List<Integer> collect = Arrays.stream(arr4).boxed().collect(Collectors.toList());
    
            //方法2:
            List<int[]> ints = Arrays.asList(arr4);         //此方法不适应于int[]
            List<String> strings2 = Arrays.asList(strings); //此方法适应于String[]
    

    5、List转int /Long数组

    //5 List转int /Long数组
            //5.1 List(内部是Int型)转int[]
            ArrayList<Integer> arrayList = new ArrayList<>();
            arrayList.add(1);arrayList.add(2);arrayList.add(3);arrayList.add(4);
            //方式1:intValue
            int[] ints1 = arrayList.stream().mapToInt(Integer::intValue).toArray();
            //方式2:valueOf
            int[] ints2 = arrayList.stream().mapToInt(Integer::valueOf).toArray();
            System.out.println(Arrays.toString(ints1));  //[1, 2, 3, 4]
            System.out.println(Arrays.toString(ints2));  //[1, 2, 3, 4]
    
    
            //5.2 List是内部是String元素 如下
            ArrayList<String> arrayList2 = new ArrayList<>();
            arrayList2.add("1");arrayList2.add("2");arrayList2.add("3");arrayList2.add("4");
            int[] ints3 = arrayList2.stream().mapToInt(Integer::valueOf).toArray();  //此时无法使用Integer::intValue
            System.out.println(Arrays.toString(ints3));  //[1, 2, 3, 4]
    
            //5.3 List转Long数组
            long[] longs = arrayList.stream().mapToLong(Integer::longValue).toArray();  //[1,2,3,4] ---->> [1, 2, 3, 4]
            long[] longs2 = arrayList2.stream().mapToLong(Integer::valueOf).toArray();  //["1","2","3","4"] ---->> [1, 2, 3, 4]
            System.out.println(Arrays.toString(longs));   //---->> [1, 2, 3, 4]
            System.out.println(Arrays.toString(longs2));  //---->> [1, 2, 3, 4]
    

    6、List的求和

    //方法1:list求和
    Integer integer = sumList.stream().reduce(Integer::sum).orElse(0);
    System.out.println(integer); //10
    //方法2:转换为数组求和
    int sum = sumList.stream().mapToInt(Integer::intValue).sum();
    System.out.println(sum);  //10
    

    7、数组的直接求和

    //7、数组的求和
    int sum1 = Arrays.stream(arr4).sum();
    System.out.println(+sum1);   //[1,2,3,4,5,6,7] ---->> 28
    

    三、字符串相关技巧

    8、截取任意长度字符串

    String s1 = "我是中国人";
    String subStr = s1.substring(0,2);
    System.out.println(subStr);  //我是
    

    9、字符串转char数组

    char[] chars = s1.toCharArray();
    System.out.println(chars);
    

    10、char数组转字符串

    //10.1 全部转
    String s2 = String.valueOf(chars);
    System.out.println(s2);
    //10.2 部分转
    String s3 = String.valueOf(chars,1,2);  //第二参数是个数,第一参数是偏移量
    System.out.println(s3);
    
  • 相关阅读:
    宽带手记
    adb的logcat使用
    项目经理
    小A老空调需求管理小记
    作为一个项目经理你关注的是什么
    技术采撷
    项目的落地目标
    和我一起使用postcss+gulp进行vw单位的移动端的适配
    高级程序设计第十三章,简单的事件捕获事件冒泡整理
    javascript高级程序设计第二章知识点提炼
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/13390790.html
Copyright © 2011-2022 走看看