Java基础(五)—— 使用对象

5.1 字符类型

5.1.1 字符类型

  • 单个的字符是一种特殊的类型:char
  • 用单引号表示的字符字面量:’a’,’1’
  • Java使用Unicode来表示字符,可以表达包括汉字在内的多种文字
字符计算
char c = 'A';
c++;
System.out.println(c);//b
int i = 'Z' - 'A';
System.out.println(i);//25
  • 一个字符加一个数字得到Unicode码表中那个数之后的字符
  • 两个字符的减,得到它们在表中的距离
  • 字母和数字在Unicode表中是顺序排列的
  • ‘a’-‘A’可以得到两段之间的距离
  • 大小写转换
char c = 'D';
char d = (char)(c + 'a' - 'A');
System.out.println(d);//d
  • 字符可以被比较大小,依据是它们在Unicode表中的编号
    • ‘0’->‘9’
    • ‘A’->‘Z’
    • ‘a’->‘z’
    • ‘Z’<‘a’

5.1.2 逃逸字符

  • 用来表达无法印出来的控制字符或特殊字符,它由一个反斜杠“\”开头,后面跟上另一个字符,这两个字符合起来,组成了一个字符
    • \b:回退一格
    • \”:双引号
    • \t:到下一个表格位
    • \’:单引号
    • \n:换行
    • \:反斜杠本身
    • \r:回车
System.out.println("abc\bd");//abd,类似操作键盘的Alt+左箭头

5.2 包裹类型

  • 每种基础类型都有对应的包裹类型
基础类型 包裹类型
boolean Boolean
char Character
int Integer
double Double
  • Integer i = 10;
  • Integer i = new Integer(10);
  • Integer i = new Integer(“10”);
  • 获得该类型的最大值最小值
    • Integer.MIN_VALUE
    • Integer.MAX_VALUE
  • 当需要让一个类或对象做事情的时候,用.运算符
    • Character.isDigit(char ch)
    • Character.toLowerCase(char ch)

5.3 字符串类型

5.3.1 字符串变量

  • 用双引号括起来的0个或多个字符就是一个字符串字面量
  • String是一个类,string的变量是对象的管理者而非所有者
    • 就像数组变量是数组的管理者而非所有者一样
  • String s = new String(“a string”);
    • 创建了一个String的对象
    • 用”a string”初始化这个对象
    • 创建管理这个对象的变量s
    • 让s管理这个对象
  • 用加号(+)可以连接两个字符串
  • 当这个+的一边是字符串而另一边不是时,会将另一边表达为字符串然后做连接
输入字符串
  • in.next();读入一个单词,单词的标志是空格
    • 包括空格、tab和换行
  • in.nextLine();读入一整行
对象变量的赋值
  • int a=1,b=2;
    • 把a的值赋给b
    • b=a;
    • 因为a和b都有自己的存储空间
    • 所以b得到了a里面的值
  • String a;String b;
    • b=a;
    • 让a和b共同管理了原来a所管理的那个字符串
比较两个String
  • == 比较是否是同一个
  • .equals比较内容是否相同

5.3.2 字符串操作

  • 字符串是对象,对它的所有操作都是通过“.”这个运算符来进行的
  • 它表示对.左边的这个字符串做右边的那个操作
  • 这里的字符串可以是变量也可以是常量
String比较大小
  • 两个字符串可以比较大小:s1.compareTo(s2)
  • 如果s1比s2小,那么结果是负的;如果s1和s2相等,那么结果是0;如果s1比s2大,那么结果是正的
  • compareToIgnoreCase可以不区分大小写地来比较大小
package com.meteor.string;

public class Main {
    public static void main(String[] args) {
        String s1 = "abc";
        String s2 = "abb";
        System.out.println(s1.compareTo(s2));//1
    }
}
  • 用length()函数获得String的长度
  • s.charAt(index)访问String里的字符
    • index从0到length()-1
package com.meteor.string;

public class Main {
    public static void main(String[] args) {
        String s1 = "abc";
        for (int i = 0; i < s1.length(); i++) {
            System.out.println(s1.charAt(i));
        }
    }
}
  • 使用s.substring(n)得到子串
package com.meteor.string;

public class Main {
    public static void main(String[] args) {
        String s1 = "0123456789";
        System.out.println(s1.substring(2));//23456789
        System.out.println(s1.substring(2,4));//23
    }
}
  • 使用s.indexOf(c)寻找字符串s是否存在c字符
package com.meteor.string;

public class Main {
    public static void main(String[] args) {
        String s1 = "0123A563789";
        System.out.println(s1.indexOf('4'));//-1
        System.out.println(s1.indexOf('A'));//4
        System.out.println(s1.indexOf("A56"));//4
        System.out.println(s1.indexOf('3'));//3
        int loc = s1.indexOf('3');
        System.out.println(s1.indexOf('3',loc+1));//7
        System.out.println(s1.lastIndexOf('3'));//7
    }
}
不可变的String
  • 所有的字符串都是不可变的,对它们的操作的结果都是制造新的字符串出来
package com.meteor.string;

public class Main {
    public static void main(String[] args) {
        String s = "abc";
        System.out.println(s.toUpperCase());//ABC
        System.out.println(s);//abc
    }
}
  • 在java1.7版本后,String支持switch-case
package com.meteor.string;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String week = in.next();
        switch (week) {
            case "monday":
                System.out.println("周一");
                break;
            case "sunday":
                System.out.println("周日");
                break;
        }
    }
}

5.4 Math类

  • abs,求绝对值
  • pow,次方
  • random,随机数,从0-1之间的随机数
  • round,四舍五入
package com.meteor.string;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        System.out.println(Math.abs(-19));
        System.out.println(Math.pow(2, 4));
        System.out.println((int) (Math.random() * 100));
        System.out.println(Math.round(5.68));
    }
}

猜你喜欢

转载自blog.csdn.net/u011741311/article/details/79146393