Java中基本类型的装箱和拆箱

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

int i = 5;
//基本类型转换成封装类型
    Integer it = new Integer(i);
//自动转换就叫装箱
        Integer it2 = i;


//封装类型转换成基本类型
        int i2 = it.intValue();
//自动转换就叫拆箱
        int i3 = it;

//int的最大值 
        System.out.println(Integer.MAX_VALUE);
//int的最小值       
        System.out.println(Integer.MIN_VALUE);
 

Java中把数字转换为字符串,字符串转换为数字

数字转字符串

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

        int i = 5;

        //方法1

        String str = String.valueOf(i);

         

        //方法2

        Integer it = i;

        String str2 = it.toString(); 

 

字符串转数字

调用Integer的静态方法parseInt

        String str = "999";

        int i= Integer.parseInt(str);

        System.out.println(i);

 

数学方法

public class TestNumber {
  
    public static void main(String[] args) {
        float f1 = 5.4f;
        float f2 = 5.5f;
        //5.4四舍五入即5
        System.out.println(Math.round(f1));
        //5.5四舍五入即6
        System.out.println(Math.round(f2));
         
        //得到一个0-1之间的随机浮点数(取不到1)
        System.out.println(Math.random());
         
        //得到一个0-10之间的随机整数 (取不到10)
        System.out.println((int)( Math.random()*10));
        //开方
        System.out.println(Math.sqrt(9));
        //次方(2的4次方)
        System.out.println(Math.pow(2,4));
         
        //π
        System.out.println(Math.PI);
         
        //自然常数
        System.out.println(Math.E);
    }
}

 练习

统计找出一千万以内,一共有多少质数

质数概念: 只能被1和自己整除的数
举例:
5只能被 1和5整除,所以是质数
8可以被2整除,所以不是质数

public class TestNumber {
		public static void main(String[] args) {
			int max = 10000000;
			int count = 0;
			for(int i=1;i<=max;i++) {
				boolean isPrime = isPrime(i);
				if(isPrime(i)) {
					count++;
				}
			}
			System.out.println("一共"+count+"个质数");
		}  
	        public static boolean isPrime(int i) {
	        	for(int j=2;j<Math.sqrt(i)+1;j++) {
		        	int mod = i % j;
		        	if(0== mod) 
		        		return false;
		        	
		        }
	        	return true;
	        	}
	    
}

 Java 使用printf或format 进行格式化输出

1.格式化输出

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

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

String name ="盖伦";
     int kill = 8;
     String title="超神";
     String f = "%s在进行了%d次击杀后,获得%s的称号%n";
     System.out.printf(f,name,kill,title);

2.printf和format

printf和format能够达到一模一样的效果 

3.换行符

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

4.总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达

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);
          

Java中的字符详解

1.保存一个字符的时候使用char

2.char对应的封装类是Character

char c1 = 'a';

        Character c = c1; //自动装箱

        c1 = c;//自动拆箱

 

3.Character常见方法

System.out.println(Character.isLetter('a'));//判断是否为字母

        System.out.println(Character.isDigit('a')); //判断是否为数字

        System.out.println(Character.isWhitespace(' ')); //是否是空白

        System.out.println(Character.isUpperCase('a')); //是否是大写

        System.out.println(Character.isLowerCase('a')); //是否是小写

         

        System.out.println(Character.toUpperCase('a')); //转换为大写

        System.out.println(Character.toLowerCase('A')); //转换为小写

 

        String a = 'a'; //不能够直接把一个字符转换成字符串

        String a2 = Character.toString('a'); //转换为字符串

4.常见转义

使用\\t制表符可以达到对齐的效果,一个\\t制表符长度是8

        System.out.println("abc\tdef");

        System.out.println("ab\tdef");

        System.out.println("a\tdef");