前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >String 类内置对象

String 类内置对象

作者头像
软件小生活
发布2021-08-16 11:23:33
5750
发布2021-08-16 11:23:33
举报
文章被收录于专栏:软件小生活

JDK(java官方)内置对象-入门2

String类[n1]

字符串是由多个字符组成的一串数据(字符序列)字符串可以看成是字符数组

1)先看是类还是接口呢

2)属于哪个包

3)构造函数(方法) 就是用来创建对象

2.1.构造方法[n2]

  • public String() 无参数构造
  • public String(byte[] bytes) 把字节数组转为字符串
  • public String(byte[] bytes,int offset,[U3] int length)
  • public String(char[] value)
  • public String(char[] value,int offset,int count)
  • public String(String original)
  • public String()
  • public String(byte[] bytes)
  • public String(byte[] bytes,int index,int length[U4] )
  • public String(char[] value)
  • public String(char[] value,int index,int count)
  • public String(String original)

简单了解一个字符串方法 =>length()

2.1.1.无参构造基本使用

【思考】:为何没有输出地址值呢?

打印length

2.2.2.有参数构造1- public String(byte[] bytes)

代码语言:javascript
复制
byte [] bytes =  {97,98,99,100};
    String s2 = new String(bytes);
    System.out.println("s2:"+s2);
    System.out.println("s2.length:"+s2.length());

观察地址值

【思考】:请问地址值为何是这个呢?

ASII码表[U5]

2.2.3.有参构造2- public String(byte[]bytes,int index,int length[n6] )

把字节数组的一部分转成字符串

需求:我想得到字节数组的一部分: bcd

2.3.4.有参构造3-public String(char[] value)

将字符数组转成 字符串

代码语言:javascript
复制
char[]chars = {'x','m','q','a','潘','金','链'};
      String s = new String(chars);
      System.out.println("s:"+s);
       System.out.println(s.length());

2.3.5.有参数构造4-public String(char[] value,int index,int count)

代码语言:javascript
复制
 String s2 = new String(chars, 2, 4);
      System.out.println("s2:"+s2);
       System.out.println(s2.length());

【思考】:上面代码,执行结果是多少呢?

2.3.6. publicString(String original)

2.2.字符串常见的方法(功能)

2.2.1.String类的判断功能
  • booleanequals(Object obj)
  • booleanequalsIgnoreCase(String str)
  • booleancontains(String str)
  • booleanstartsWith(String str)
  • boolean endsWith(Stringstr)
  • booleanisEmpty()

【中文解释】

2.2.2.String类的获取功能

int length() 获取字符串长度

char charAt(int index) 获取指定位置的字符

int indexOf(int ch) 返回指定字符第一次出现的字符串内的索引。

int indexOf(String str) 返回指定字符串第一次出现的字符串内的索引。

int indexOf(int ch,int fromIndex) 返回指定字符从指定位置第一次出现的字符串内的索引。

int indexOf(String str,intfromIndex) 返回指定字符串从指定位置第一次出现的字符串内的索引。

String substring(int start) 截取字符串默认情况下到末尾

String substring(int start,int end) 截取字符串从哪里开始到哪里结束

代码语言:javascript
复制
 /*
       *  int length()  => 获取字符串长度
               char  charAt(int index) => 获取指定位置的字符 
               int  indexOf(int ch)  => 返回指定字符第一次出现的字符串内的索引。
 思考:
  为何 indexOf(int ch) 是int而不是   char  
  因为   'a'  97   => 'a'  如果你直接定义为char 只能写'a'  写
               int  indexOf(String str)=> 返回指定字符串第一次出现的字符串内的索引。 
               int  indexOf(int ch,int fromIndex)==》返回指定字符从指定位置第一次出现的字符串内的索引。
               int  indexOf(String str,int fromIndex)=>返回指定字符串从指定位置第一次出现的字符串内的索引。
               String  substring(int start) =》截取字符串默认情况下到末尾
               String substring(int start,int  end)  =>截取字符串从哪里开始到哪里结束 

【作业练习】:

1:遍历获取字符串中的每一个字符

WoAiDongNanDaXue

2:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)

2.1.给定一个写死的字符

Hello123World 结果: 大写字符:2个 小写字符:8个 数字字符:3个

2.2.把给定字符串的方式,改进为键盘录入字符串的方式。

2.2.3.String类的转换功能

byte[] getBytes()将字符串转成字节数组

char[] toCharArray() 将字符串转成字符数组

static String valueOf(char[] chs) 把字符数组转成字符串

static String valueOf(int i) int类型的数据转成字符串

String toLowerCase()将字符串中数据进行小写转换

String toUpperCase() 将字符串中数据进行大写转换

String concat(String str) 字符串的连接

代码实战:

代码语言:javascript
复制
publicstaticvoid main(String[] args) {
         String str = "hello";
  byte[] bytes = str.getBytes();
         System.out.println(bytes); // [B@15db9742
  for (inti = 0; i < bytes.length; i++) {
              System.out.println(bytes[i]);
         }
     }

观察打印结果:

char[] toCharArray() 将字符串转成字符数组

代码语言:javascript
复制
publicstaticvoid main(String[] args) {
         String str = "hello";
  char[] charArray = str.toCharArray();
  for (inti = 0; i < charArray.length; i++) {
              System.out.println(charArray[i]);
         }
     }

连接:

【作业练习】:

把一个字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符)

举例: helloWORLD结果:Helloworld

2.2.4.String类的其他功能
  • 替换功能
  • String replace(char old,char new)
  • String replace(String old,String new)
  • 去除字符串两空格
  • String trim()

u 按字典顺序比较两个字符串 [n7]

  1. 1. int compareTo(String str)
  2. 2. int compareToIgnoreCase(String str)

【作业练习题:】

a)把数组中的数据按照指定个格式拼接成一个字符串

举例:int[] arr ={1,2,3}; 输出结果:[1, 2, 3]

b)字符串反转

举例:键盘录入”abc” 输出结果:”cba”

c)统计大串中小串出现的次数

举例:在字符串”woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出现了5次

d)模拟官方的trim()方法,写出如何去除字符串中间的空格

e) 自己研究 lastIndexOf(int ch)返回指定字符的最后一次出现的字符串中的索引。

f) 判断上传图片格式

图片格式限制为:png jpg

如果图片格式是png 或者jpg 提示:图片格式正确!

如果图片格式不是这些格式,一律提示:图片格式不正确,请重新上传!!

小猫.jpg

小猫.png

小猫.mp4

小猫.mp3


[n1]Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。 => String s = "abc"

- 字符串不变; 它们的值在创建后不能被更改。 字符串一旦被创建那么其中的值不可以被更改

- 字符串缓冲区支持可变字符串。 =>字符串缓冲区中定义的值可以被修改

[n2]Student st = new Student(); =>只要new了对象就必然会调用构造函数

默认调用父类的无参构造

如果定义多个构造函数,那么就不会调用默认的无参

[U3]将offset改为index更好理解

[U4]要转成字符串的长度

一共需要转换几位

[U5]https://baike.baidu.com/item/ASCII/309296?fromtitle=ascii%E7%A0%81%E8%A1%A8&fromid=19660475&fr=aladdin

[n6]不是总长度,你要转换长度

[n7]实际上比较的ASCII码表的值

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件小生活 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JDK(java官方)内置对象-入门2
  • String类[n1]
    • 2.1.构造方法[n2]
      • 2.1.1.无参构造基本使用
      • 2.2.2.有参数构造1- public String(byte[] bytes)
      • 2.2.3.有参构造2- public String(byte[]bytes,int index,int length[n6] )
      • 2.3.4.有参构造3-public String(char[] value)
      • 2.3.5.有参数构造4-public String(char[] value,int index,int count)
      • 2.3.6. publicString(String original)
    • 2.2.字符串常见的方法(功能)
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档