java基础中String类总结

java基础中String类总结

String类【含义】:String是一个特殊的对象,并不是基本的数据类型,该类对象一旦被初始化,就不能被改变。String类的操作很重要,因为项目开发折射出了现实生活中很多基本事物的内容,这些内容大部分都是以字符串形式存在的,进而要操作,由此可见其重要性!

  • *以下是String类对象对字符串的常见操作*
  • 获取
  • 判断
  • 转换
  • 替换
  • 切割
  • 去除空格
  • 比较

【注意】:String s=”abcdef”;
String s1=new String(“abcdef”);
s和s1的区别在于:s是代表一个对象,s1代表两个对象,但是通过s.equals(s1),返回值是true,他们各自对象中内容是一样的

“获取操作”常用介绍

  • 获取字符串的长度:int length();

  • 获取某一位的字符 char charAt(int index);

  • 从“指定位置”开始获取“字符”在“字符串”中第一次出现的位置 int indexOf(int char,int fromIndex); 其中fromIndex就是开始去获取开始的角标

  • 【同理】

  • 上述获取“字符”的方法,也同样适用于字符串,方法名称都一样,把char类型的参数改成String类型的参数传入即可!

  • 指定一个“字符”反向查出倒数第一个出现的角标位置 :

  • int lastIndexOf(int char);

获取的实例

重要的代码段:
String s=”ab9023derwr”;
System.out.println(s.length()); //得到总长度为11
System.out.println(s.charAt(2)); //得到的字符是9
System.out.println(s.indexOf(‘d’)); //得到的角标是6
System.out.println(s.indexOf(‘d’,3)); //得到的角标也是6
System.out.println(s.lastIndexOf(‘w’)); //得到的角标是9,【注意】这里是反向获取,但得到的角标不是1,因为角标值是从左往右计算的,最开始为0角标,大家都知道的……依次去获取!

字符串获取的方式也是和字符的方式是一样的,就不一一介绍了。

“判断操作”常用介绍

  • 字符串当中是否包含某一个子串:boolean contains(String str); 包含就返回true,不包含就返回false

  • 字符串中是否有内容 boolean isEmpty();

  • 字符串是否以指定的内容开始的 boolean startsWith(String str);

  • 字符串是否以指定的内容结尾的 boolean endsWith(String str);

  • 判断两个字符串是否相同 boolean equals(String str);

  • 判断两个字符串是否相同,并且不在乎大小写的方法 boolean equalsIgnore(String str);

判断的实例(很简单)

重要的代码段:
String s=”Mr.wang.txt”;
System.out.println(s.contains(“wang”)); //true
System.out.println(s.isEmpty()); //false
System.out.println(s.startsWith(“Mr”)); //true

【注意】在判断boolean contains(String str)时:
也可以想到用indexOf(String str)的方法;不同之处在于:后者不仅可以做出判断是否存在,而且能返回其str出现的位置角标
【应用中留意】前者只是做基本的判断,后者如果判断字符串不存在,则会返回-1,存在就返回大于等于0的角标值

所以:后者判断可以表示为:if(str1.indexOf(str2)!=-1){才执行该主体内容};在做基本判断的同时,也得到了str2在str1中第一次出现的角标值!
equals(str)方法和equalsIgnoreCase()方法很简单就不再举例说明了……

“转换操作”常用介绍

常用方法:
1.字符串《——-两者之间直接互转——-》字符数组;
2.字符串《——-两者之间直接互转——-》字节数组;

重要的方法:
1》对于字符串转为字符数组:char[] toCharArray();
实例:String str=”myChengxu”;
char[] ch=str.toCharArray();
这时候ch组数中依次存入了‘m’,‘y’…’u’的字符元素,可以通过遍历的方式打印出来即可……

2》对于字符数组转为字符串:
动态获取的方法:String(char[] ch); String(char[],offset,count);

静态获取的方法:
static String copyValueof(char[]);static String copyValueof(char[],offser,count);
static String valueof(char[]);

实例举一个,其他的以此类推就行很简单的:
这是动态的方法演示:
char[] ch={‘a’,’b’,’c’,’d’,’e’};
String str1=new String(ch);
String str2=new String(ch,0,3);//其中0代表是从0角标开始,3代表的是从0角标开始要选取的个数
对静态方式演示:
char[] ch={‘a’,’b’,’c’,’d’,’e’};
String str1=String.valueOf(ch);//这句话就是静态的方法把字符数组中的元素转化成了字符串的形式;

3》对于字符串转为字节数组:byte[] getBytes();
实例: String str=”这里写图片描述”;
byte[] bt=str.getBytes();
最后通过遍历的方式打印出该字节数组,值分别是:
123,12,64,3,5

4》对于字节数组转为字符串:
byte[] bt={123,12,64,3,5};
String str=new String(bt);
打印str的结果就是上图的特殊符号!

【转大小写的方法】
String toUpperCase(); //转为大写字符串的方法
String toLowerCase(); //转为小写字符串的方法

“替换操作”常用介绍

对于替换:可以替换字符串和字符!
主要方法: String replace(oldchar,newchar);
实例:String s1=”wangkeze”;
String s2=s1.replace(‘a’,e”);
最终的结果:s2就是:wengkeze
【注意】
1.s1一旦被定义,就是不能改变的;对于s2指向了来说s1被替换的结果而已,打印s1是仍然为原值的
2.如果没有找到相应的替换元素,仍然为原始值!

“切割操作”常用介绍

切割的操作:思想:主要是根据具体的切割元素把字符串切割成为相应的子字符串依次存入数组中。
String[] split(regex);
例如:String s=”wang,lu,zhijie”;
String[] str=s.split(“,”);
for(int i=0,i

“去除空格操作”常用介绍

去除空格:(只是去除一个字符串中前后两端的空格,中间的不能去除)
String trin();//这个很简单就不再演示了,直接用该无参数的方法就OK了

“比较操作”常用介绍

将两个字符串进行自然顺序的比较,这个方法很重要,在后面将要学到的TreeSet集合中将要用到该方法的比较思想!!
int compareTo(String str);
返回值为int类型,主要是因为,如果两字符串比较前者小于后者,则为负数,若大于,则是正数,如果相等,则为0
例如:String s1=”a1c”;
String s2=”abc”;
int number=s1.compareTo(s2);
System.out.println(number);
按照自然数比较之后,因为s1小于s2,所以为-49,为什么为-49,是因为,当两个字符串依次比较时,第一个字符都是a,于是比较第二个字符(这时s1是’1’,s2是’b’,根据各自的ASCII码知道,1的ascii码为49,b字符为98,所以都知道-49的来历了吧!!)

以上都是基本的字符串操作方法!
大家都学习了,下面来做一个简单例子(入门级别的)熟悉一下用法
(1)模拟trin()除去空格的方法:编写java一个程序实现此功能!
【分析】字符串String str=“ youareniuren 牛人真牛啊 “,要去除此字符串中前后两端的空格,请看图分析:
这里写图片描述

“`
class Test
{
public static void main(String[] args)
{
String str=” youareniuren 牛人真牛啊 “;
System.out.println(“去除空格前的字符是:”+str);
System.out.println(“去除空格后的字符是:”+getMytrin(str));
}

public static String getMytrin(String s)
{
    int left=0;//左指针开始位置
    int right=s.length()-1; //右指针开始位置

        while (s.charAt(left)==' ' && left <= right)
        {
            left ++; //左指针加1继续判断操作
        }

        while (s.charAt(right)==' ' && left <= right)
        {
            right --;//右指针减1继续判断操作
        }
    return s.substring(left,right);
    //返回左右指针区间的字符串
}

}
“`结果:这里写图片描述
ok,就写到这里吧,还有很多的例子,在以后的编程中会天天接触到的!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值