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); 第二种方法 ...
随机推荐
- 解决:执行python脚本,提示错误:/usr/bin/python^M: 解释器错误: 没有那个文件或目录。
执行python脚本,提示错误: /usr/bin/python^M: 解释器错误: 没有那个文件或目录. 产生错误原因: \r字符被显示为^M,这时候只需要删除这个字符就可以了. Linux环境下: ...
- 算法进阶:0x01 位运算
一.快速幂的模板代码 a^b%p: #include<iostream> using namespace std; int main() { int a,b,p; cin>>a ...
- u盘乱码了,如何备份
文/亡命之徒 2013年7月的最后一天,今天在公司下了些嵌入式的教程存在u盘里,准备拿回家到自己的本子上学习,不知怎的查到电脑上,显示一些文件夹,名字都是乱码,顿时心情扫地,无奈只能到互联网上寻找re ...
- [C++_QT] Error: Not a signal or slot declaration
问题: 在Qt工程中添加了一个新的窗口之后 一直报错 如下 单单从错误描述上看 是缺少信号或者槽 但是我确定没有缺少啊 然后第二个错误显示了一个mox_xxxx文件 然后我就去那个目录下去找那个文件 ...
- 吴裕雄--天生自然神经网络与深度学习实战Python+Keras+TensorFlow:TensorFlow与神经网络的实现
import tensorflow as tf import numpy as np ''' 初始化运算图,它包含了上节提到的各个运算单元,它将为W,x,b,h构造运算部件,并将它们连接 起来 ''' ...
- lambda表达式在解决java后台分组排序时的应用
需求:按照起始日期查询出数据库里一段连续日期的住院信息. 问题:数据库里的住院信息可能不是完整的,也就是在给出的日期区间里只有若干天的数据,缺少某些日期的数据. 解决: 1.需要我们先按日期分组查出数 ...
- mui 监听 手机 物理返回键
mui.back = function(){ return //禁用物理返回键 也可以写其他逻辑 }
- 关于 checkbox 的一些操作
获取checkbox选中的状态 $("#checkbox").is(":checked"); 设置 checkbox 的状态 $("#checkbox ...
- C语言:使用递归解决汉诺塔问题。
//汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小 ...
- 「JSOI2013」贪心的导游
「JSOI2013」贪心的导游 传送门 多次询问区间内%一个数的最大值 我们不妨设这个数为M_sea 值域比较小所以考虑分块维护. 我们观察到对于给定的一个 \(p\) ,函数 \(y = x \% ...