Java记录4--string
1.toString所有的类都默认自动继承了Objiect类
2.Object类中的toString方法返回的时类的名字和该哈希表码组成的一个字符串,
System.out.println(类对象名)实际输出的是该对象的toString方法所返回的字符串
3.所有类都从Object类继承了equals方法,源码如下
public boolean equals(Object obj)
{ return this == obj;}
4.object中的equals方法是直接判断调用equals的对象和形参obj所引用的对象是否为同一对象,即是否是内存中同一块存储单元,如果this和obj指向同一块内存对象,返回true,否则返回false,即使是内容完全相等的两块不同的内存对象,也会返回false
5.如果希望不同内存但相同内容的两个对象equals时返回true,则我们需要重写父类的equals方法
6.string类已经重写了object中的equals方法,可以用来判断两个对象的内容是否相等
public class A
{
public static void main(String [] args)
{ //s1 s2 存放在堆区
String s1 = new String ("china");
String s2 = new String ("china");
System.out.println(s1.equals(s2));//true
System.out.println(s1 ==s2 );//false //s3 s4的china存放在数据区
String s3 = "china";
String s4 = "china";
System.out.println(s3.equals(s4));//true
System.out.println(s3 ==s4 ); //true
}
}
7,String常用方法总结
1.public char charAt (int index)
返回字符串中第index字符
2.public int length()
返回字符串的长度
3.public int indexOf (String str)
返回字符串中出现str的第一个位置
4.public int indexOf (String str , int fromIndex)
返回字符串中从fromIndex从from开始出现str的第一个位置
5.public boolean equalsIgnoreCase (String another)
比较字符串与another 是否一样(忽略大小写)
6.public String replace(char oldChar , char newChar)
在字符串中用new字符串 替代old字符串
7.public boolean startsWith (String prefix)
判断字符串是否已prefix字符串开头
8.public boolean endsWith(String suffix)
判断是否以suffix结尾
9.public String toUpperCase()
返回一个字符串的大写形式
10.ublic String toLowerCase()
返回一个字符串的小写形式
11.public String substring( int beginIndex , int endIndex)
返回该字符串从begin开始到end结尾的字符串
public class A
{
public static void main(String [] args)
{
String s1 = "zmzb",s2 = "ZMZB";
System.out.println(s1.charAt(1));//m
System.out.println(s1.length());//
System.out.println(s1.indexOf('m'));//1,z下标是0
System.out.println(s1.indexOf('s'));//-1
System.out.println(s1.equals(s2));//false
System.out.println(s1.equalsIgnoreCase(s2));//true String sr = "狂人日记";
String ssr = sr.replace('日','周');
System.out.println(ssr);//狂人周记
} }
8.StringBuffer类
由来:string类对象一旦创建就不可更改,如果经常对字符串内容进行修改,则使用string buffer,否则既耗时间又耗空间
string类中没有修改字符串的方法,但是stringbuffer类中大量拥有
9.string buffer类的构造函数
public StringBuffer()
创建一个空的没有任何字符的StringBuffer对象
public StringBuffer(int capacity)
创建一个不带字符,但具有指定出生容量的字符串缓冲区
public StringBuffer(String str)
创建一个StringBuffer对象,包含与str对象相同的字符序列
10.常用方法
public StringBuffer delete(int start ,int end)
删除从start开始到end-1为止的一段字符序列,返回修改后的该StringBuffer对象引用
public class A
{
public static void main(String [] args)
{
StringBuffer sb = new StringBuffer();
sb.append("abc");
sb.append("123");
System.out.println(sb);//abc123
sb.insert(3,"--");//在下标为3的位置插入
System.out.println(sb);//abc--123
sb.delete(2,6);
System.out.println(sb);//ab23
sb.reverse();//逆序
String str = sb.toString();//32ba
System.out.println(str);//32ba
}
}
Java记录4--string的更多相关文章
- 深入理解Java中的String
一.String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Ser ...
- 【原创】Java编译器对String的优化
首先看以下的代码: public static void main(String[] arge) { String str1 = new String("1234"); Strin ...
- 再解java中的String
今天看到一篇文章中,写了关于java中的String.我看了后,是我从学java来觉得是最好的一篇关于String类的文章.看了这篇文章你就会对String的认识会提高一个层次.故将原作者的文章特意转 ...
- (转)Java中的String为什么是不可变的
转自:http://www.importnew.com/7440.html String是所有语言中最常用的一个类.我们知道在Java中,String是不可变的.final的.Java在运行时也保存了 ...
- 关于JAVA中的String的使用与连接(转)
JAVA中的String连接性能 Java中的String是一个非常特殊的类,使它特殊的一个主要原因是:String是不可变的(immutable). String的不可变性是Ja ...
- Java常量字符串String理解
Java常量字符串String理解 以前关于String的理解仅限于三点:1.String 是final类,不可继承2.String 类比较字符串相等时时不能用“ == ”,只能用 "eq ...
- Java中的String为什么是不可变的?
转载:http://blog.csdn.net/zhangjg_blog/article/details/18319521 什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那 ...
- Java中的String与常量池[转帖]
string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...
- Java中的String与常量池
string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...
- java中字符串String 转 int(转)
java中字符串String 转 int String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法 ...
随机推荐
- ACM的探索之Just Skip The Problem
-----------------心怀虔诚,奋勇前进,fighting!!!!!! Problem Description: inclusively: 包括一切地;包含地 simul ...
- phpStudy的虚拟站点域名管理
使用phpStudy在本地环境,使用虚拟域名访问本地站点. 步骤: 0x01 修改配置文件 打开站点域名管理 添加你本地站点的路径,第二域名可以不填,网站端口不填的话默认为80. 先点击新增,再点击 ...
- base64加/解密算法C++实现
base64编码原理:维基百科 - Base64 其实编码规则很简单,将字符串按每三个字符组成一组,因为每个字符的 ascii 码对应 0~127 之间(显然,不考虑其他字符集编码),即每个字符的二进 ...
- Could not set property of class with value There is no setter for property named
检查entity中类的属性与MAPPER中的resultMap属性是否一致
- 试题编号: 201903-3 试题名称: 损坏的RAID5
这题的数据未免也太水了,题目的意思好像默认是每块磁盘装载数据的长度是相等的.我写了判断每次取数据是否会超过每块磁盘存的数据的长度,然而并没有什么卵用.交上去20分,写了个数据测了下,如果要求的块太大的 ...
- 位运算(&、|、^、~、>>、<<)
1.位运算概述 从现代计算机中所有的数据二进制的形式存储在设备中.即0.1两种状态,计算机对二进制数据进行的运算(+.-.*./)都是叫位运算,即将符号位共同参与运算的运算. 口说无凭,举一个简单的例 ...
- 【C语言】输入一个正整数,判断其是否为素数
素数的定义: 素数(prime number)又称质数,有无限个. 素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为素数.代码1: #include<stdio.h& ...
- 基于SILVACO ATLAS的a-IGZO薄膜晶体管二维器件仿真(08)
进展比较慢啊... 根据江南大学硕士论文IGZO/IZO双有源层薄膜晶体管特性的模拟研究: 其中, gCBa:类受主导带尾态 gVBd:类施主价带尾态 gGd:类施主氧空位态 NDeep:价带尾深施主 ...
- Vue ElementUI Tree组件 回显问题(设置选择父级时会全选所有的子级,有此业务场景是不适合的)
业务场景下有这样的问题 业务需求需要保存前端 半选节点 解决方案 let checked = this.$refs.menuTree.getCheckedKeys(); //此方法获取半选节点 let ...
- IDEA中使用Springboot+SSM的踩坑记(一)
今天由于电脑无限蓝屏,不知怎么把我IDEA里面破解过的一些东西给搞没了,包括IDEA本体和JRebel,照着原来的方法破解连本体都开不起来了(哭死),索性下了个最新版来用,结果JRebel还是破解不得 ...