java基础_week 6 使用对象

week 6 使用对象

6.1 字符类型
字符类型
  • 单个的字符类型是一种特殊的类型:char
    • 用单引号来表示的字符字面量:‘a’、‘1’
    • Java使用Unicode来表示字符,可以表达包括汉字在内的多种文字
字符计算
  • 一个字符加一个数字,得到Unicode码表中那个数字之后的字符
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		char c = '汉';
		c++;
		System.out.println(c);	//输出结果是 汊 这个字。	
	}
  • 两个字符的减,得到它们在表中的距离。
  • char也可以和int之间互相赋值。

(因为是采用Unicode码表,所以 char c = 'A';char c = 65char c = \u0041,输出的时候都是指同一个字符 ‘A’,\u0041是16进制表示法)

大小写转换:

  • 字母和数字在Unicode表中是顺序排列的,并且是按从小到大的顺序排列的
  • 大写字母和小写字母是分开排列的,并不在一起
  • 'a'-'A'可以得到两段之间的距离,于是:
    • a+'a'-'A'可以把一个大写字母变成小写字母
    • a+'A'-'a'可以把一个小写字母变成大写字母

**字符大小:**字符可以被比较大小,依据是它们在Unicode表中的编号。

  • ‘0’ → 9、‘A’ →’z’、'a’→ ‘z’、 ‘Z’ < ‘a’
逃逸字符

用来表达无法印出来的控制字符或者特殊字符,它由一个反斜杠" \ "开头,后面跟上另一个字符,这两个字符合起来,组成了一个字符。

字符意义备注
\b回退一格不是指删除,而是向左移动一个字符,并在此位置开始输出后面的字符
eclisepe里的控制台无法显示,可以到命令台去跑一下看看
\t到下一个表格位一个\t使得输出从下一个制表位开始,用\t使得上下两行对齐
\n换行源自打字机的动作
\r回车源自打字机的动作
\"双引号
\’单引号
\\反斜杠本身
6.2 包裹类型

对于基本数据类型,Java提供了对应的包裹(wrap)类型。这些包裹类型将一个基本数据类型的数据转换成对象的形式,从而使得它们可以像对象一样参与运算和传递。

基本类型包裹类型
booleanBoolean
charCharacter
byteByte
shortShort
intInterger
longLong
floatFloat
doubleDouble

除了int和char以外,包裹类型就是把基本类型的名字的第一个字母大写。在Java的系统类库中,所有第一个字母大写的,都是类的名字。所以在编辑程序的时候,一定要小心大小写,以免一不小心犯错。

包裹类型的用处:

  • 获得该类型的最大值和最小值

    Integer.MIN_VALUE

    Integer.MAX_VALUE

.运算符

当需要让一个类或者对象做事情的时候,用.运算符。在.的左边,是一个对象或者类,.的右边是这个对象或者类能提供给你的一些服务、或者数据,或者能够做的一些动作。

a.length

Integer.MIN_VALUE

character举例:

static boolean isDigit(char ch) 判断这个字符是不是数字
static boolean isLetter(char ch) 判断这个字符是不是字母
**static boolean isLetterOrDigit(char ch) **判断这个字符是不是字母或者数字
**static boolean isLowerCase(char ch) ** 判断这个字符是不是小写字母
static boolean isUpperCase(char ch) 判断这个字符是不是大写字母
static boolean isWhitespace(char ch) 判断这个字符是不是一种空格
static char toLowerCase(char ch) 把这个字符转换成小写
static char toUpperCase(char ch) 把这个字符转换成大写
6.3 字符串
字符串

字符串:

  • 用双引号括起来的0个或多个字符就是一个字符串字面量

字符串变量:

对于 String s;

  • String是一个类,String的变量是对象的管理者而非所有者,就像数组变量是数组的管理者而非所有者一样

new = 创建

Stirng s = new String("a string");

  • 创建了一个String的对象
  • 用"a Sting"初始化这个对象
  • 创建管理这个对象的变量
  • 让s管理这个对象

初始化字符串变量

String s = "hello";

编译器帮你创建一个String类的对象交给s来管理。

字符串连接

  • 用加号(+)可以 连接两个字符串。

    “hello”+“world"→"helloworld”

  • 当这个+的一边是字符串而另一边不是时,会将另一边表达为字符串然后做连接

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String s  = new String("Hello");
		System.out.println(12+24+s);	//输出36hello
		System.out.println(s+12+24);	//输出hello1224
		System.out.println(s+(12+24));	//输出hello36
	}

输入字符串

  • in.next(); 读入一个单词,单词的标志是空格

    空格包含空格、tab和换行

  • in.nextLine(); 读入一整行

字符串变量

**对象变量的赋值:**并未直接得到具体的值,而是指向了同一串数据,拥有同样“管理权”。

比较两个string:

在这里插入图片描述

字符串操作
  • 字符串是对象,对它的所有操作都是通过"."这个运算符来进行的
    • 格式:字符串. 操作
  • 它表示对.左边的这个字符串做右边的操作,这里的字符串可以是变量也可以是常量。

Strings大小的比较:

  • 两个字符串可以比较大小:

    在这里插入图片描述

    如果s1比s2小,那么结果是负的;如果s1和s2相等,那么结果是0;如果s1比s2大,那么结果是正的。

  • compareToIgnoreCase 可以不分大小地来比较大小。

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String s1 = "abc";
		String s2 = "abb";
		String s3 = "abcd";
		System.out.println(s3.compareTo(s2));
		System.out.println(s1.compareTo(s2));
		System.out.println(s1.compareTo(s3));
		System.out.println("abcd".compareTo(s3));
	}

获得String的长度

在这里插入图片描述

访问String里的字符

  • s.charAt(index)

    • 返回在index上的单个字符
    • index的范围是0到length()-1
    • 第一个字符的index是0,和数组一样
  • 但不能用for-each循环来遍历字符串

    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		String s1 = "abc";
    		for(int i = 0; i < s1.length(); i++) {
    			System.out.println(s1.charAt(i));
    		}		
    	}
    

得到子串

  • s.substring(n) 得到从n好位置到末尾的全部内容
  • s.substring(b,e) 得到从b号位置到e号位置之前的内容

寻找字符

  • s.indexOf( c ) 得到c字符所在的位置,-1表示不存咋

  • s.indexOf(c,n) 从n号位置开始寻找C字符

  • s.indexOf(t) 找到字符串t所在的位置

  • 从右边开始找

    • s.lastIndexOf©
    • s.lastIndexOf(c,n)
    • s.lastIndexOf(t)
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		String s1 = "0123A563789汉字";
    		int loc = s1.indexOf('3');
    		System.out.println(s1.indexOf('4'));
    		System.out.println(s1.indexOf('A'));
    		System.out.println(s1.indexOf("A56"));
    		
    		System.out.println(s1.indexOf('3',loc));
    		System.out.println(s1.indexOf('3',loc+1));
    	  }
    
    

其他String操作

  • s.stratrsWith(t) 判断字符串是不是以另一个字符串开头的
  • s.endsWith(t) 判断字符串是不是以另一个字符串结尾的
  • s.trim() 删掉字符串两端的空格
  • s.replace(c1,c2) 把字符串里的C1都换成C2
  • s.toLowerCase() 转大写
  • s.toUpperCase() 转小写

不可变的String

  • 所有的字符串都是不可变的,对它们的操作的结果都是制造新的字符串出来
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String s1 = "abcd";
		s1.toUpperCase();
		System.out.println(s1);
		
		String s2 = s1.toUpperCase();
	    System.out.println(s2);
	  }

在switch-case中使用字符串

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值