java中String类学习

java中String类的相关操作如下:

(1)初始化:例如,String s = “abc”;

(2)length:返回字符串的长度。

(3)charAT:字符操作,按照索引值获得字符串中的指定字符

如,下面例子把字符c赋值为'e'

        String str="abcdef";
        char c=str.charAt(4);

(4)字符串连接

    1)concat

    2)+

注意:当使用+时不仅可以连接字符串,也可以连接其他类型(原因参加博客中另一篇文章java中的toString方法),但至少有一个参与连接的内容是字符串类型,而且“+”匹配的顺序是从左向右,如果两边连接的内容都是基本数字类型则按照加法运算,如果参与连接的内容有一个是字符串才按照字符串进行连接。

举例如下:

           int a = 10;
           int b=1;
           String s1 = "123"+a+b;
           String s2=a+b+"123";
           System.out.println(s1);
           System.out.println(s2);

上述程序的输出结果为:

而像这样String s3=a+b;的语句是无法通过编译的,原因是参与连接的内容没有字符串类型

(5)字符串是否相等

    1)equals判断两个字符串对象的内容是否相同

    2)==    比较的是两个对象在内存中存储的地址是否一样

    具体区别参加另一篇博客(java中的==和equals)

    另外还有一个方法equalsIgnoreCase,该方法的作用是忽略大小写比较两个字符串的内容是否相同

(6)compareTo字符串比较

(7)split方法以特定的字符串作为间隔,拆分当前字符串的内容,一般拆分以后会获得一个字符串数组。

           String s = "12,3,4,567";
           String []c=s.split(",");      

注意split中是以字符串进行分割的(里面是双引号)而不是字符

如果字符串中在内部存在和间隔字符串相同的内容时将拆除空字符串,尾部的空字符串会被忽略掉,拆分出的中间的空字符串的数量等于中间间隔字符串的数量减一个。

例如:

         String s = “abbcbtbb”;

         String s1[] = s.split(“b”);

则拆分出的结果字符串数组s1的内容为:{“a”,””,”c”,”t”}。:

         String s = “abbbcbtbbb”;

         String s1[] = s.split(“b”);

则拆分出的结果是:{“a”,””,””,”c”,”t”}。

最后的空字符串不论有多少个,都会被忽略。

如果需要限定拆分以后的字符串数量,则可以使用另外一个split方法,例如:

         String s = “abcbtb1”;

         String s1[] = s.split(“b”,2);

该代码的作用是将字符串s最多拆分成包含2个字符串数组。则结果为:{“a”,”cbtb1”}。

         如果第二个参数为负数,则拆分出尽可能多的字符串,包括尾部的空字符串也将被保留。

(8)substring:该方法的作用是取字符串中的“子串”。

注意取字串的区间为前闭后开,如下面的输出结果为23:

           String s = "12345";
           String s_sub=s.substring(1,3);      
           System.out.println(s_sub);

substring中也可以只指定一个参数,则取从该参数(包括该参数)以后所有字符作为字串。

如下面程序的输出结果为2345

           String s = "12345";
           String s_sub=s.substring(1);      
           System.out.println(s_sub);

(9)valueOf:该方法的作用是将其它类型的数据转换为字符串类型。

由于该方法是static方法,所以不用创建String类型的对象即可。例如:

         int n = 10;

         String s = String.valueOf(n);

(10)getBytes方法,将字符串转换为对应的byte数组,从而便于数据的存储和传输。

(11)toCharArray方法该方法的作用和getBytes方法类似,即将字符串转换为对应的char数组。

(12)startsWith判断是否以某个字符作为字符串的开始。

(13)endsWith判断是否以某个字符作为字符串的结尾

(14)indexOf方法,该方法的作用是查找特定字符或字符串在当前字符串中的起始位置,如果不存在则返回-1。

(15)trim:该方法的作用是去掉字符串开始和结尾的所有空格,然后形成一个新的字符串。该方法不去掉字符串中间的空格。

(16)大小写转换toLowerCase方法和toUpperCase方法,其他字符保持不变。

(17)replace方法:替换字符串中所有指定的字符或字符串,然后生成一个新的字符串。:

         String s = “abcat”;

         String s1 = s.replace(‘a’,’1’);

该代码的作用是将字符串s中所有的字符a替换成字符1,生成的新字符串s1的值是”1bc1t”,而字符串s的内容不发生改变。

如果需要将字符串中某个指定的字符串替换为其它字符串,则可以使用replaceAll方法,例如:

         String s = “abatbac”;

         String s1 = s.replaceAll(“ba”,”12”);

该代码的作用是将字符串s中所有的字符串”ab”替换为”12”,生成新的字符串”a12t12c”,而字符串s的内容也不发生改变。

如果只需要替换第一个出现的指定字符串时,可以使用replaceFirst方法,例如:

         String s = “abatbac”;

         String s1 = s. replaceFirst (“ba”,”12”);

该代码的作用是只将字符串s中第一次出现的字符串”ab”替换为字符串”12”,则字符串s1的值是”a12tbac”,字符串s的内容也不发生改变。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

单点登录系统实现

单点登录系统实现基于SpringBoot 今天的干货有点湿,里面夹杂着我的泪水。可能也只有代码才能让我暂时的平静。通过本章内容你将学到单点登录系统和传统登录系统...

78970
来自专栏腾讯移动品质中心TMQ的专栏

从插件重构看如何提升测试质量与效率

几个月前技术侧发起了一轮手机管家小火箭的重构,目的是为了更好地梳理小火箭的代码架构逻辑,方便以后更好地提高开发效率和开发质量。

33160
来自专栏禁心尽力

如何使用线程锁来提高多线程并发效率

       今天对synchronized关键字的用法又有了更高一层的理解,特此记录一下。        一直对自己设计的多通道做单不是狠满意,并发效率低下。...

26070
来自专栏编程

Java8新特性第3章

Stream作为Java8的新特性之一,他与Java IO包中的InputStream和OutputStream完全不是一个概念。Java8中的Stream是对...

22070
来自专栏不想当开发的产品不是好测试

java项目 远程debug

AVA项目无法像PHP那样可以随时修改文件内容进行调试,调试可以借助eclipse,本地代码的话很容易在本地debug,但如果代码已经打包部署在linux上呢?...

31270
来自专栏不想当开发的产品不是好测试

java array to list

背景 想把数组转为list,使用list的判断元素是否存在的方法,结果发现一个坑,int类型的数组失败了  步骤 public static void main...

21250
来自专栏禁心尽力

Java设计模式之模板方法设计模式(银行计息案例)

       不知道为什么,这几天对Java中的设计模式非常感兴趣,恰巧呢这几天公司的开发任务还不算太多,趁着有时间昨天又把模板方法模式深入学习了一下,做了一个...

38080
来自专栏企鹅号快讯

谁说 Java 要过时?2017年Java 大事件一览及未来前瞻

在过去的一年中,Java 历经了许多变化。在今年年初,Java EE 处于一个不确定的状态,Java 9 版本也推迟了它的发布日期。在 2016 年的 Java...

22270
来自专栏不想当开发的产品不是好测试

java匿名内部类

show the code : package com.test.jwen.httpApiAuto; public class AInter { publ...

24170
来自专栏禁心尽力

多线程编程:阻塞、并发队列的使用总结

最近,一直在跟设计的任务调度模块周旋,目前终于完成了第一阶段的调试。今天,我想借助博客园平台把最近在设计过程中,使用队列和集合的一些基础知识给大家总结一下,方便...

28750

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励