一、定义String字符串

String字符串和char字符不同,char使用单引号,只能表示一个字符,字符串就是一段文本。String是个类。这个类使用final修饰,所以这个类是不可以继承扩充和修改它的方法的。String类又特别常用,所以在对String对象进行初始化时,它可以不像其它对象一样,必须使用new关键字构造对象。Java提供了一种简化的特殊语法。

使用String对象存储字符串:

String s = "有志者事竟成";

当然我们也还是可以像以前使用new关键字的。

String s = new String("有志者事竟成");

二、String字符串的常用方法。

String类位于java.lang包中,java会默认的导入java.lang包,所以我们使用java.lang包的类时,不需要显示的import类,String类具有丰富的方法,其中比较常用的有:

  1. 计算字符串的长度

  2. 连接字符串

  3. 比较字符串

  4. 提取字符串

  5. 替换字符串

1、计算字符串的长度比较简单。代码如下:

String email = "abc@tom.com  ";
System.out.println(email.length());
System.out.println(email.trim().length());
String abc="你好";
System.out.println(abc.length());

第一个输出是:13。

第二个输出是:11。

第三个输出是:2。

因为空格也算是字符串的长度,如果你不想计算前后的空格,也也可以使用trim()方法把前后的空格去了。在计算长度。第三个输出为2,可见java对中文的处理和英文也是一样计算的。并不存在一个中文等于两个英文符号的长度。

2、连接字符串。

连接字符串有两种方法:方法1:使用“+”。方法2:使用String类的concat()方法。代码如下:

System.out.println(email+"abc");
System.out.println(email.concat("abc"));

上面两个代码的输出都是一样的:

abc@tom.com abc

abc@tom.com abc

3、比较字符串

字符串的比较方法有很多,如比较两个字符串是否相等,比较后返回值是个布尔值。

String email2="cc@tom.com";
if(email.equals(email2)){
System.out.println("相等");
}else{
System.out.println("不相等");
}

结果是不相等。

字符串的比较是提取每一个字符逐个比较的,如下图所示

而且这种比较是区分大小写的。所以

String str1 = "java";
String str2 = "Java";
System.out.println(str1.equals(str2));

返回为false,如果你想不区分大小写的比较,那么你可以使用不区分大小写的比较方法或者把字符转为为大写(也就可以小写)后再比较。

System.out.println(str1.equalsIgnoreCase(str2));
System.out.println(str1.toLowerCase().equals(str2.toLowerCase()));
System.out.println(str1.toUpperCase().equals(str2.toUpperCase()));

我们还可以判断字符串是否已某个字符串结尾或者开头

System.out.println(email.startsWith("abc"));
System.out.println(email.endsWith("com"));

4、提取字符串

要提取字符串,我们首先得学会如何查询字符串。

注意下标也是从0开始的。

System.out.println(email.indexOf("a"));//从零开始,所以这里是0
System.out.println(email.indexOf("c"));//这个是2,从左到右找,返回第一个找到的。
System.out.println(email.indexOf("zz"));//找不到返回是-1
System.out.println(email.lastIndexOf("c"));//这个是8,从右到左找,返回第一个找到的。
下面是截取字符串
System.out.println(email.substring(3));//从第4个(包括第四个)开始截取到最后
System.out.println(email.substring(3, 5));

indexOf方法和substring方法经常一起使用,比如我们要截取@之后的所有字符串,我们可以结合这个两个。

System.out.println(email.substring(email.indexOf("@")+1));

5、替换字符串

例如我们可以把所有的字符串c换成字符串z

System.out.println(email.replace("c", "z"));

java中String字符串的更多相关文章

  1. JAVA中String(字符串)课堂总结

    一:Java编译器中关于字符串自动优化 例子一: 源代码: public class StringPool { public static void main(String args[]) { Str ...

  2. Java中String字符串常量池总结

    最近到广州某建站互联网公司面试,当时面试官问假设有两个字符串String a="abc",String b = "abc";问输出a==b是true还是fals ...

  3. java中String字符串的==解析

    今天不知道怎么看了下string的==的问题,本身我觉得我这个水平去判断几个字符串相等还能出问题?呵呵,真的出了大问题,根本原因在于对java字节码的不了解. 首先,==运算符比较的是两个变量所指向的 ...

  4. Java中String字符串常量池

    首先看一个例子,通过这个例子更能快速理解String常量池 public static void main(String[] args) { String a = "ab"; St ...

  5. java中String字符串的替换函数:replace与replaceAll的区别

    例如有如下x的字符串 String x = "[kllkklk\\kk\\kllkk]";要将里面的“kk”替换为++,可以使用两种方法得到相同的结果 replace(CharSe ...

  6. Java中String字符串toString()、String.valueOf()、String强转、+ ""的区别

    Object#toString(): Object object = getObject(); System.out.println(object.toString()); 在这种使用方法中,因为ja ...

  7. JAVA中String字符串比较equals()和equalsIgnoreCase()的区别

    标签: equals和equalsIgnoreC 2012-11-11 16:03 65644人阅读 评论(0) 收藏 举报  分类: JAVA(3)  1.使用equals( )方法比较两个字符串是 ...

  8. Java中的字符串操作(比较String,StringBuiler和StringBuffer)

    一.前言 刚开始学习Java时,作为只会C语言的小白,就为其中的字符串操作而感到震撼.相比之下,C语言在字节数组中保存一个结尾的\0去表示字符串,想实现字符串拼接,还需要调用strcpy库函数或者自己 ...

  9. java中string内存的相关知识点

    (一):区别java内存中堆和栈: 1.栈:数据可以共享,存放基本数据类型和对象的引用,其中对象存放在堆中,对象的引用存放在栈中: 当在一段代码块定义一个变量时,就在栈中 为这个变量分配内存空间,当该 ...

随机推荐

  1. Oracle 数据库修复一例

    Oracle 数据库修复一例:(系统装有两个实例,分别是:bhorcl,orcl)今天一台生产服务器的Oracle不能正常登录,用plSql登录,提示:TNS:listernet does noet ...

  2. PAT 乙级 1039.到底买不买 C++/Java

    题目来源 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少 ...

  3. 3DMax下载与安装(注册机为网上收集,仅供学习与研究,支持正版)

    3DS Max 全称3D Studio Max,是Autodesk公司开发的三维动画制作和渲染软件(Autodesk AutoCAD 2012也是Autodesk公司的软件产品) 3DS Max广泛应 ...

  4. Java 数组ArrayList语法

    恶补基础,记录一下数组ArrayList的常用语法 1.导入 import java.util.ArrayList; 2.定义数组list ArrayList<类名> list = new ...

  5. sublime text3中Package Control的安装

    手动安装Package Control,亲测有效成功 1.点击https://github.com/wbond/package_control去github下载Package Control安装包下载 ...

  6. AJAX异步更改数据库

    前段时间做了一个小网站,里面有个小功能感觉挺好的,在此与大家分享一下,还请各位大神不要笑话小弟的无知. 此功能大概是这个样子的:点击下图中的类别名称,就可以对类别进行修改. 点击类别名称以后,原来的表 ...

  7. js 将图片转换为 base64

    var img = document.getElementById('s_lg_img'); function getBase64Image(img) { var canvas = document. ...

  8. 2019 qbxt CSP-S考前冲刺班总结

    似乎--也没有太多好说的. ​ 但这是最后一次培训,因此还是应该写点什么的. ​ 记得状态最好的一次培训,是高一的第一次培训.那次是总共的第二次培训.第一次去的时候什么也不会,跟的非常吃力,每天都在疯 ...

  9. 【游记】CSP-S2019游记

    \(\Large\texttt{Day -1}\) 今天晚上gryz开了也许是晚宴(awa),有水饺和蛋糕.因为去拿笔记本的原因没有吃到蛋糕..好可惜. 明天不用上早自习太棒了. 明天出发报道. 这笔 ...

  10. css 水平垂直居中两种常用方式