其他

数字与字符串

封装类

所有的基本类型,都有对应的类类型,比如int对应的类是Integer,这种类就叫做封装类

封装类都由final修饰,无法继承

public class TestNumber {
 
    public static void main(String[] args) {
        int i = 5;
         
        //把一个基本类型的变量,转换为Integer对象
        Integer it = new Integer(i);
        //把一个Integer对象,转换为一个基本类型的int
        int i2 = it.intValue();
        
        //基本类型转换成封装类型
        Integer it = new Integer(i);
         
    }
}
  • Number类
    • 数字封装类有 Byte,Short,Integer,Long,Float,Double,这些类都是抽象类Number的子类
  • Character
    • char对应的封装类

不需要调用构造方法,**通过=符号 **自动把 基本类型 转换为 类类型 就叫装箱

不需要调用Integer的intValue方法,通过=就自动转换成int类型,就叫拆箱

public class TestNumber {
 
    public static void main(String[] args) {
        int i = 5;
 
        //基本类型转换成封装类型
        Integer it = new Integer(i);
         
        //自动转换就叫装箱
        Integer it2 = i;
        
         //封装类型转换成基本类型
        int i2 = it.intValue();
         
        //自动转换就叫拆箱
        int i3 = it;
         
    }
}

int的最大值可以通过其对应的封装类Integer.MAX_VALUE获取

数字转字符串

  1. 使用String类的静态方法valueOf
  2. 先把基本类型装箱为对象,然后调用对象的toString

字符串转数字

  1. 调用Integer的静态方法parseInt

格式化

如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐 使用格式化输出,就可以简洁明了

%s 表示字符串 %d 表示数字 %n 表示换行

printf和format能够达到一模一样的效果,在printf中直接调用了format

public class Test() {
    String year = "虎年"String oneFormat = "%d 年是%s%n";
    System.out.printf(oneFormat, 2022, year);
        System.out.format(oneFormat, 2022, year);
}

其他格式化方式

public class TestNumber {
   
    public static void main(String[] args) {
        int year = 2020;
        //总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达
          
        //直接打印数字
        System.out.format("%d%n",year);
        //总长度是8,默认右对齐
        System.out.format("%8d%n",year);
        //总长度是8,左对齐
        System.out.format("%-8d%n",year);
        //总长度是8,不够补0
        System.out.format("%08d%n",year);
        //千位分隔符
        System.out.format("%,8d%n",year*10000);
  
        //小数点位数
        System.out.format("%.2f%n",Math.PI);
          
        //不同国家的千位分隔符
        System.out.format(Locale.FRANCE,"%,.2f%n",Math.PI*10000);
        System.out.format(Locale.US,"%,.2f%n",Math.PI*10000);
        System.out.format(Locale.UK,"%,.2f%n",Math.PI*10000);
    }
}

换行符就是另起一行 --- '\n' 换行(newline) 回车符就是回到一行的开头 --- '\r' 回车(return) 在eclipse里敲一个回车,实际上是回车换行符 Java是跨平台的编程语言,同样的代码,可以在不同的平台使用,比如Windows,Linux,Mac 然而在不同的操作系统,换行符是不一样的 (1)在DOS和Windows中,每行结尾是 “\r\n”; (2)Linux系统里,每行结尾只有 “\n”; (3)Mac系统里,每行结尾是只有 "\r"。 为了使得同一个java程序的换行符在所有的操作系统中都有一样的表现,使用%n,就可以做到平台无关的换行

字符串

字符串即字符的组合,在Java中,字符串是一个类,所以我们见到的字符串都是对象 常见创建字符串手段:

  1. 每当有一个字面值出现的时候,虚拟机就会创建一个字符串
  2. 调用String的构造方法创建一个字符串对象
  3. 通过+加号进行字符串拼接也会创建新的字符串对象
public class Test {
    public static void main(String[] args) {
        String one = "one";		//字面值,虚拟机碰到字面值就会创建一个字符串对象
        String two = new String("two");//创建了对象
        char[] ch = new charp[]{'t','r','e','e'};
        String tree = new String(ch);//通过字符数组创建一个字符串对象
        String four = one + two;//通过+加号进行字符串拼接
    }
}

immutable 是指不可改变的 比如创建了一个字符串对象 String garen ="盖伦"; 不可改变的具体含义是指:

  • 不能增加长度
  • 不能减少长度
  • 不能插入字符
  • 不能删除字符
  • 不能修改字符

一旦创建好这个字符串,里面的内容 永远 不能改变

String 的表现就像是一个常量