零基础学Java笔记-浙大MOOC翁恺-第6周 使用对象

本文介绍了Java中的字符类型及其操作,包裹类型的使用,以及字符串的管理与各种操作方法。讲解了字符计算、大小写转换、字符串连接、比较等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第6周 使用对象

6.1 字符类型

  • 单个的字符是一种特殊的类型:char

    • 用单引号表示的字符:'a',,'1'
    • Java使用Unicode来表示字符,可以表达包括汉字在内的多种文字
  • 字符计算

    • 一个字符加一个数字得到Unicode码表中的那个数之后的字符
    • 两个字符的减,得到它们在表中的距离
    • char可以和int之间相互转换和赋值
char c = 'A';
c++;
System.out.println(c);
//B
int b = 'Z'-'A';
System.out.println(b);
//25
  • 大小写转换char d=od+'A'-'a'

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

  • 逃逸字符

    • 用来表达无法印出来的控制字符或特殊字符,它由一个反斜杠""开头,后面跟上另一个字符,这两个字符合起来,组成了一个字符
    字符意义字符意义
    \b回退一格"双引号
    \t到下一个表格位单引号
    \n换行\反斜杠本身
    \r回车

6.2 包裹类型

包裹类型

基础类型包裹类型
booleanBoolean
charCharacter
intInteger
doubleDouble

包裹类型除了完成基础类型的功能以外,还提供了若干操作方法

  • int整数类型占位4Byte --> 32bit,能够表达整数的范围是[ $-2{31},2{31}-1 $]
 Integer.MIN_VALUE//获得int最小值
Integer.MAX_VALUE//获得int最大值
  • 字符串大小写转换、判断
在这里插入图片描述

Math类

6.3 字符串

字符串变量和数组变量类似,它并不存放字符串,不是字符串的所有者,它是字符串的管理者。

Java的字符串还是一种特殊的“不可变”对象,所有的字符串操作都是产生一个新的字符串,而不是对原来的字符串的修改。对这一点的理解颇为重要。

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

字符串

  • String s;
  • String是一个类,String的变量是对象的管理者而非所有者
    • 类似于数组变量是数组的管理者而非所有者

new=创建

String s = new String("a string");
  • 创建了一个String的对象
  • 用"a string"初始化这个对象
  • 创建管理这个对象的变量s
  • 让s管理这个对象

在这里插入图片描述

初始化字符串变量

String s = "hello";
  • 编译器帮你创建一个String类的对象,管理权限交给s

字符串连接

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

    • “hello”+“world”–>“helloworld”
  • 当这个+的一边是字符串而另一边不是时,会将另一边表达为字符串然后做连接

    • "I’m "+18–>“I’m 18”

    • 1+2+“age”–>“3age”

    • “age”+1+2–>“age12”

输入字符串

  • in.next();读入一个单词,单词的标志是空格、tab、换行
  • in.nextLine();读入一整行

字符串变量

对象变量的赋值

  • 字符串变量中,a、b是管理者,不是所有者。b=a是b和a都管理a的字符串
  • int变量中,a、b是所有者,b=a是改变本身
在这里插入图片描述

比较两个String:同一个or相同?

  • ==比较两个管理者是否管理同一个字符串对象
if(input == "bye"){
    ...
}
  • .equals()比较两个管理者分别管理的字符串对象的内容是否相同
if(input.equals("bye")){
    ...
}

字符串运算

字符串操作

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

Strings大小的比较

  • 两个字符串可以比较大小:
s1.compareTo(s2)
//如果s1比s2小,那么结果是负的;
//如果s1和s2相等,那么结果是0;
//如果s1比s2大,那么结果是正的;
  • compareToIgnoreCase可以不区分大小写地比较大小

获得String的长度

  • length()函数
String name = "Hellola";
name.length();

访问String里的字符

s.charAT(index);
  • 返回在index上的单个字符
  • index的范围是0到length()-1
  • 第一个字符的index是0,和数组一样
  • 但是不能用for-each循环来遍历字符串:for-each只对可枚举的对象有用

得到子串

  • 得到n号位置到末尾的全部内容
s.substring(n);
  • 得到[b,e)子串内容,左闭右开
s.substring(b,e)

寻找字符

  • 查找字符

s.index0f(c)得到c字符所在的位置,-1表示不存在
s.index0f(c,n)从n号位置开始寻找c字符
s.index0f(t)找到字符串t所在的位置

  • 从右边开始找

s.lastIndex0f(c)
s.lastIndex0f(c,n)
s.lastIndex0f(t)
其它String操作

s.startsWith(t)
s.endsWith(t)
s.trim()
s.replace(c1,c2)
s.toLowerCase()
s.toUpperCase()

不可变的String

  • 所有的字符串都是不可变的,对它们的操作的结果是制造新的字符串出来

    String s = "abc";
    System.out.println(s.toUpperCase());
    System.lut.println(s);
    //abc
    

在switch-case中使用字符串

switch(s){
        case "this"....break;
        case "that"....break;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值