3.6 字符串-3.10数组

字符串

3.6.1 子串
  • substring:包含左不包含右
3.6.2 拼接
  • 字符串与非字符串拼接时,会自动将非字符串转换为字符串(tostring)
3.6.3 不可变字符串
  • java中的字符串无法修改,当需要修改字符串时,可以用子串操作
3.6.4 检测字符串是否相等
  • 由于字符串是一个对象,使用equals方法而不是等于号来判断相等
3.6.9 构建字符串
  • 拼接多个小字符串时,使用StringBuilder类下的append方法和toString方法

  •         String greeting = "Hello";
            String s = greeting.substring(0, 3); // 复制的范围是[0,3)
            String world = "world";
            StringBuilder builder = new StringBuilder();
            builder.append(greeting);
            builder.append(world);
            builder.toString();
    

输入与输出

3.7.1 读取输入
  • 标准输入流

    Scanner in = new Scanner(System.in);
    System.out.print("What is your name? ");
    String name = in.nextLine();// nextline:输入一行,包含空格
    String firstname = in.next();// next:输入一个单词,遇到空格
    // get second input
    System.out.print("How old are you? ");
    int age = in.nextInt();
    // display output on console
    System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
    
  • 输入密码使用console类的readLine方法

3.7.2 格式化输出
  • java的格式化字符串类似C,也可以用String.format方法格式化字符串

  • 在这里插入图片描述

  • 具体的转换符用到再查

3.7.3 文件输入与输出
  • 注意文件的路径,相对路径是Java虚拟机启动目录的位置,故最好用绝对路径。
  • 读取或写入文件时,需要抛出IOE异常

控制流程

3.8.6 中断控制流程的语句
  • 带标签的break语句:标签放在希望跳出的最外层循环之前,break之后执行的语句是带标签的语句块末尾

大数

  • 使用BigInteger或BigDecimal下的函数做运算,而不能使用运算符

数组

3.10.1 声明数组
  • 使用int[] a来声明数组,数组的长度不可变

            int[] a = new int[100];
            int[] n = {1, 2, 3};
            n = new int[] {4,5,6};
    
  • 允许长度为0的数组

3.10.2 访问数组元素
  • 数字数组初始化为0;boolean数组初始化为false;对象数组初始化为null。而字符串String是对象,故字符串数组初始化为null。
  • 数组的元素个数:a.length
3.10.3 for each循环
  • for each循环:集合必须是数组或实现了Iterable接口的对象
3.10.4 数组拷贝
  • 直接将一个数组变量赋值给另一个数组变量得到的结果是浅拷贝,即修改其中的一个数组另一个也会改变。

  • 要进行深拷贝,可以使用

    copyOf(T[] original, int newLength) //第二个参数是新数组的长度,当长度大于源数组时,使用上一节的规则初始化新的元素
    
  • Java中的数组没有指针运算,分配在

  • 使用Arrays.toString得到一个包含数组中所有元素的字符串

3.10.5 命令行参数
  • main方法的String[] args参数表示以字符串数组的方式接收命令行参数
3.10.6 数组排序
  • 使用以下的方法进行数组排序(源码中使用快排实现)

        public static void sort(int[] a) {
            DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0);
        }
    
  • Math.random();//返回0到1之间的随机数
    
3.10.7 多维数组
  •         int[][] b = new int[5][4];
            int[][] c = {{1, 2, 3, 4}, {5, 6, 7, 8}};
      		//二维数组无法使用for each,需要嵌套循环
      		//二维数组可以使用Arrays.deepToString()打印成字符串。
    
3.10.8 不规则数组
  •       int[][] odds = new int[NMAX + 1][];
          for (int n = 0; n <= NMAX; n++)
             odds[n] = new int[n + 1];
      	  //构造不规则数组需要使用循环
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值