Java (六、String类和StringBuffer)
Java String 类
// ==比较的是字符串在栈中存放的首地址,而equals()比较的是两个字符串的内容是否相同
//普通的声明字符串的方法,只会在字符串常量池里开辟空间,并且开辟空间之前,会检查字符串常量池里是否已存在
//相同的数据,如果有,直接指向已存在的数据,如果没有会在字符串常量池里开辟一个新的空间
String s = "ccy";
String s2 ="ccy";
System.out.println(s == s2);
System.out.println(s.equals(s2)); //实例化声明字符串的方法,会先在堆中存放数据,将数据的首地址保存在栈内,然后检查字符串常量池是否存在
//相同的数据,如果没有则会在字符串常量池中开辟一个新的空间来存放字符串数据,如果有则声明完毕。
String s3 = new String("jredu");
String s4 = new String("jredu");
System.out.println(s3 == s4);
System.out.println(s3.equals(s4)); String s5 = "jereh";
String s6 = new String("jereh");
System.out.println(s5 == s6);
System.out.println(s5.equals(s6));
运行图:

关于字符串在内存空间中存放的示例图:

String 方法:
1、字符串长度
String string = new String("字符串长度");
int length = string.length();
System.out.println(length);
运行图:

2、连接字符串
下面是一个例子:
public class Demo06 {
public static void main(String[] args) {
String s = new String("张三,");
String hello = new String("你好!");
String sentence = s.concat(hello);
System.out.println(sentence);
}
}
运行图:

3、分割字符串成数组
package day6;
import java.util.Arrays;
public class Demo09 {
public static void main(String[] args) {
String sing = "长亭外 古道边 芳草碧连天 晚风拂柳笛声残 夕阳山外山 ";
String[] printsing;
printsing = sing.split(" ");
System.out.println(Arrays.toString(printsing));
}
}
运行图:

4、 toUpperCase()让小写的字符串变为大写的字符串
toLowerCase()让大写的字符串变为小写的字符串
equalsIgnoreCase()字符串忽略大小写进行比较
例子:
public class test {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "ABC";
String s3 = s1.toUpperCase();
String s4 = s2.toLowerCase();
System.out.println(s3);
System.out.println(s4);
System.out.println(s1.equals(s4));
System.out.println(s2.equals(s3));
System.out.println(s1.equalsIgnoreCase(s2));
}
}
运行图:

5、其他常用的方法
public class Demo08 {
public static void main(String[] args) {
String s = "我爱北京天安门!天安门上太阳升!";
//indexOf()获取字符串中某个字符或字符串首次出现的位置,若没有出现则返回-1
System.out.println(s.indexOf("天"));
//lastIndexOf()获取字符串中某个字符或字符串最后一次出现的位置,若没有出现则返回-1
System.out.println(s.lastIndexOf("天"));
//substring()从字符串的那个索引开始截取,获得一个新的字符串
String newS = s.substring(8);
System.out.println(newS);
//两个参数的第一个参数是截取开始的位置(包含),第二个参数是结束的位置(不包含)
String newS3 = s.substring(2, 4);
System.out.println(newS3);
//trim()去掉字符串或者字符前后的空格
String s2 = " 杰 瑞 教 育 ";
String newS4 = s2.trim();
System.out.println(s2);
System.out.println(newS4);
}
}
运行图:

StringBuffer 类
StringBuffer的创建
StringBuffer sBuffer = new StringBuffer("青春无悔");
System.out.println(sBuffer);
运行图:

StringBuffer和String的区别:
public static void main(String[] args) {
String s = "conversion"
//String ---> StringBuffer
StringBuffer sb = new StringBuffer(s);
//StringBuffer ---> String
String s2 = sb.toString();
System.out.println(sb);
System.out.println(s2);
scanner.close();
}
运行图:

StringBuffer的常用方法:
a、append(string s)将指定的字符串追加到此字符序列。
public static void main(String[] args) {
StringBuffer buffer = new StringBuffer("abcde");
buffer.append("f");
System.out.println(buffer);
}
运行图:

b、 reverse() 将此字符序列用其反转形式取代。
public static void main(String[] args) {
StringBuffer sBuffer = new StringBuffer("abcde");
sBuffer.reverse();
System.out.println(sBuffer);
}
运行图:

c、 delete(int start, int end) 移除此序列的子字符串中的字符。
public class Demo04 {
public static void main(String[] args) {
StringBuffer sBuffer = new StringBuffer("abcde");
sBuffer.delete(1, 3);
System.out.println(sBuffer);
}

d、 insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中。
public static void main(String[] args) {
StringBuffer sBuffer = new StringBuffer("abcde");
sBuffer.insert(2,"!");
System.out.println(sBuffer);
}
运行图:

e、replace(int start, int end, String str)使用给定 String 中的字符替换此序列的子字符串中的字符。
public static void main(String[] args) {
StringBuffer sBuffer = new StringBuffer("abcde");
sBuffer.replace(1, 4,"*");
System.out.println(sBuffer);
}
运行图:

Java (六、String类和StringBuffer)的更多相关文章
- 【java】String类和StringBuffer类常用操作
String类是字符串常量,是不可更改的常量.而StringBuffer是字符串变量,它的对象是可以扩充和修改的.StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于Stri ...
- 1.2 JAVA的String类和StringBuffer类
一.String 1.String概念 String不属于基本类型,String是final修饰的是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了如果要对String修改使用 ...
- Java 常用类String类、StringBuffer类
常用类 String类.StringBuffer类 String代表不可变的字符序列 "xxxxxxx"为该类的对象 举例(1) public class Test { publi ...
- java.lang.String 类的所有方法
java.lang.String 类的所有方法 方法摘要 char charAt(int index) 返回指定索引处的 char 值. int codePointAt(int index) 返回指定 ...
- 深入分析Java的String类的方法与特点
字符串是任何编程语言都必须支持的变量类型,有些编程语言是直接提供了原生的变量类型,有些编程语言则使用语法特性以 SDK 的形式提供支持.在Java编程平台中,对字符串的支持使用了后者的形式,就是通过在 ...
- java 中String类的常用方法总结,带你玩转String类。
String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...
- String类,StringBuffer类转字符数组
String不可变类型和StringBuffer可变类型 String类和StringBuffer类都是字符串表示类,区别在于String对象引用变量是不可变的,而StringBuffer类对象引用变 ...
- java中String类为什么不可变?
在面试中经常遇到这样的问题:1.什么是不可变对象.不可变对象有什么好处.在什么情景下使用它,或者更具体一点,java的String类为什么要设置成不可变类型? 1.不可变对象,顾名思义就是创建后的对象 ...
- 在java中String类为什么要设计成final?
大神链接:在java中String类为什么要设计成final? - 程序员 - 知乎 我进行了重新排版,并且更换了其中的一个例子,让我们更好理解. String很多实用的特性,比如说“不可变性”,是工 ...
- java 中String类的常用方法总结,玩转String类
String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...
随机推荐
- Android中显示gif动态图片
在android中显示一个静态图片比如png jpg等等都很方便,但是如果要显示一个gif 动态图片就需要进行一些处理. 本文是采用自定义view 然后进行重新onDraw方法来实现 首先自定义Vie ...
- 手把手教你画一个 逼格满满圆形水波纹loadingview Android
才没有完结呢o( ̄︶ ̄)n .大家好,这里是番外篇. 拜读了爱哥的博客,又学到不少东西.爱哥曾经说过: 要站在巨人的丁丁上. 那么今天,我们就站在爱哥的丁丁上来学习制作一款自定义view(开个玩笑,爱 ...
- XML 处理利器 : XStream
XStream 概述 XStream 是一套简洁易用的开发类库,用于将Java对象序列化为XML或者将XML反序列化为JAVA对象,是JAVA对象和XML之间一个双向转换器. 举例 ...
- Android安全机制浅谈-android学习之旅(80)
由于Android安全机制存在,使得漏洞利用有一些困难. ASLR:即地址空间格局随机化.ASLR使得加载程序时不使用固定的基址加载,防止攻击者直接定位攻击代码位置,从而阻止溢出攻击 NX:(No e ...
- 支持老版本IE的3种解决方案
原文链接: 3 Solutions for Supporting Internet Explorer 翻译人员: 铁锚 翻译时间: 2014年2月14日 在刚发布的那几年,Internet Explo ...
- 传输控制协议(TCP) -- 连接建立及终止过程
TCP简介 相对于不可靠.无连接的用户数据报协议(User Datagram Protocol, UDP),传输控制协议(Transmission Control Protocol, TCP)是可靠的 ...
- 不用局部变量实现C语言两数交换算法
关于交换算法,我想非常简单,所以,这次不做分析,直接上代码: #include <stdio.h> #include <stdlib.h> //用异或方式实现 void swa ...
- 网站开发进阶(十五)JS基础知识充电站
JS基础知识充电站 1.javascript alert弹出对话框时确定和取消两个按钮返回值? 用的不是alert对话框,是confirm confirm(str); 参数str:你要说的话或问题: ...
- DES
本文对DES的介绍部分摘自博文DES加密算法的C++实现,具体实现则由自己完成. 另外,DES的官方文档链接见这里,在维基百科上也有比较详细的介绍.不过,DES已经被证明是不安全的(可见于RSA公司 ...
- Linux - RAID和LVM
什么是 RAID 磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列. RAID 可以透过一个技术(软件或 ...