String 常用的方法
来源:互联网 发布:发射后不管知乎 编辑:程序博客网 时间:2024/05/22 08:12
注意的是:String stu="abc"; String stu1=new String("abc"); stu和stu1的哈希值是一样的,所以存入HashSet集合时只能存一个(因为不允许重复)
HashSet(存入的条件) (e.hash == hash && ((k = e.key) == key || key.equals(k)))==>如果是true 就认为它们是一样
1:求长度
字符串.length();//返回字符串长度
2:字符串比较
字符串1.equals(字符串2)//比较是否两个字符串每个字符的都一样才返回true,因为重写了Object的toString方法
== 比较是地址(判断是否是同一个字符串对象) equals比较的是两个字符串的值。
字符串1.equalsIgnoreCase 不区分大小写的比较
String aa="wwwWWW";
String aa1="wwwwwQQWWW";
String aa2=aa.toLowerCase();//转为小写
String aa3=aa1.toUpperCase();//转为大写
3:字符串的连接
两张方式:
String s=y.concat(y1)//返回String必须接受后输出才是连接后的字符串//StringBuffer 不用
//StringBuffer 不用 对象.append()重写toStrong
String name="小花"
String a=name+",你好";
4:字符串提取和查询
String y="raggsda";
y.indexOf(int ch)
y.indexOf(String ch)//搜索第一个出现存在返回下标,不存在返回-1
y.lastindexOf(int ch)
y.lastindexOf(String ch)//搜索最后一个出现存在返回下标,不存在返回-1
y.substring(int index)//返回下标以后的字符段
y.substring(int index,int index1)//返回下标之间的字符index -->index1-1,的字符
y.trim()//返回一个前后不含有空格的字符串副
5:字符串.split(separator,limit)
以separator拆分可单可多 limit控制分多少次
String 面试题
String str=new String("asd");
//如果堆的常量池不存在asd,那么就会在常量池产生一个对象,再去堆产生一个对象
产生了两个对象,反之1个
01.基本数据类型 比较的是 值
02.引用数据类型比较的是 内存地址
1.为什么String 类中的equals是比较的 字符串内容
01.查询Object类中的方法
public boolean equals(Object obj) {
return (this == obj); 比较的是内存地址
}
02.再去看String类中的方法
String中的equals是重写了Object类中的equals方法
比较的是内容
String a = "abc";
String b = "abc";
String c = new String("abc");
System.out.println(a.equals(b)); // 值肯定一致 所有返回 true
System.out.println(a == b);// 内存地址也一致 所以 true
System.out.println("****************************************");
System.out.println(a.equals(c));// 值肯定一致 所有返回 true
System.out.println(a == c);// 内存地址不一致 所以 false
String a = "a";
String b = "bc";
String c = "abc";
System.out.println(c == ("a" + "bc")); //true
01.在程序编译期间 会把常量(不变)a 和常量bc 合并成 abc
02.之后再和“abc“进行比较
String a = "a";
String b = "bc";
String c = "abc";
System.out.println(c == (a + b)); // false
01. a 和 b 都是变量(变化), 在编译期间无法确定变量的值
02. c在编译期间已经确定, ab无法确定
final String a = "a";
final String b = "bc";
String c = "abc";
System.out.println(c == (a + b)); // true
final可以修饰:
01.修饰的属性,就是常量 运行期间不能改变
02.修改的方法,不能被子类重写
03.修改的类,不允许被继承
-1 +2 =?
1 0 0 0 0 0 0 1 01:找到-1的源码
1 1 1 1 1 1 1 0 02:找到-1的反码 // 转反时符号位不变其余的去反,0变1,1变0
1 1 1 1 1 1 1 1 03:找到-1的补码
0 0 0 0 0 0 1 0 04:找到 2的 补码
============================
0 0 0 0 0 0 0 1
二进制补码去运算的;
最左为代表正负:0为:正,1为:负
负数的源码===>补码公式 源转反+1
负数的补码===>源码公式 补码先变反码+1
阅读全文
0 0
- String的常用方法
- String常用的方法
- String常用的方法
- String常用的方法
- string的常用方法
- String 的常用方法
- String的常用方法
- String 的常用方法
- String的常用方法
- String常用的方法
- String的常用方法
- String常用的方法
- String的常用方法
- String 常用的方法
- String.常用的属性方法
- String类的常用方法
- String类的常用方法
- String中常用的方法
- 第五章,文件权限与类型
- 《精通比特币》常用术语
- Java并发编程——Semaphore (信号量)和CountDownLatch
- Git基本命令的使用
- Vue--本地开发环境下的跨域
- String 常用的方法
- eclipse自制提醒模板
- 获取json数组数据或单个数据
- iOS使用UICollectionView只允许向左方向滑动,不允许向右方向滑动。
- Intent跳转到其他应用页面
- 怎样让一个新成立的网站快速获得大量的权重以及百度收录?
- React6 实战项目1
- Linux搭建nfs服务以及客户端配置
- 在Chrome浏览器下使用Image标签SRC为空时显示18*18小的空图标