java String
来源:互联网 发布:c语言今有雉兔同笼 编辑:程序博客网 时间:2024/06/07 11:28
一、String 类
字符串是一个特殊的对象;字符串一旦初始化就不可以被改变;String str=“abc”;String str1 = new String("abc");有什么区别呢?
二、Java.lang.String (不能有子类)
public final classString extends ObjectimplementsSerializable,Comparable<String>,CharSequence
class StringDemo{
public static void main(String[] args)
{
/*
String s1 = "abc";//s1是一个类类型变量, "abc"是一个对象。
//字符串最大特点:一旦被初始化就不可以被改变。
String s2 = new String("abc");
//s1和s2有什么区别?
//s1在内存中有一个对象。
//s2在内存中有两个对象。
System.out.println(s1==s2);
System.out.println(s1.equals(s2));//String类复写了Object类中equals方法,
//该方法用于判断字符串是否相同。
*/
String s = "abcde";
method_1(s);
}
/*
String类是对字符串事物的描述。
该类定义了专门用于操作字符串的方法。
"abc":
*/
public static void method_1(String s)
{
char ch = s.charAt(3);
System.out.println("ch="+ch);
int num = s.codePointAt(3);
System.out.println("num="+num);
String s1 = "qq";
s1 = s1.concat("mm");
System.out.println("s1="+s1);
System.out.println("qq"+"mm");
String a = "opq";
String b = "opq";
System.out.println("a==b:"+(a==b));
}
}
1>
String s1="abc";// s1 是一个类型变量,"abc"是一个对象,字符串最大的特点:一旦被初始化就不可以改变
2>
s1=“kk”; 这时s1引用的对象地址发生改变,“abc对象不变”.改变s1的指向
3>
String s1=“abc”;
String s2=new String(“abc”);
String s3=“abc”;
a1和a3比较s1==s3 返回true
s1和s2进行对比,结果分别是:false,true
分析结果:
false:通过new String(“abc”)这样的方式是new一个新的String对象,没有查找内存池,所以返回false。
true:在Object里面的equals方法,比较对象的地址,但String类里面重写了equals方法,建立了自己对象独特的内容。该方法用于判断字符串是否相同。
4>
s1和s2 有什么区别?
s1在内存中有一个对象。 “abc”
s2在内存中有两个对象。new String , “abc”
5>
字符串在内存中有常量池,存储各个字符串,只要字符串相同,及指向同一个对象。
三.String (常见功能-获取和判断)String 类适用于描述字符串事物,那么他就提供了多个方法对字符串进行操作,常见的操作有哪些?
1.获取
1.1 字符串中包含的字符数,也就是字符串的长度。
int length(); 获取长度(数组获取长度的是length 常量)
1.2 根据位置获取位置上某个字符。(此字符串制定索引处的 char值,第一个 char 值位于索引 0处)
char charAt(int index)
1.3 根据字符获取该字符在字符串中位置
int indexOf(int ch): 返回的是ch在字符串中第一次出现的位置。传入的值是(包括 0 和 0xFFFF) int indexOf(int ch, int fromIndex) : 从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str): 返回的是str在字符串中第一次出现的位置。(找不到返回-1)
int indexOf(String str, int fromIndex) :从fromIndex指定位置开始,获取str在字符串中出现的位置。
int lastIndexOf(int ch) : 返回指定字符在此字符串中最后一次出现处的索引。
int lastIndexOf(int ch, intfromIndex) :
int lastIndexOf(String str):
int lastIndexOf(String str,int fromIndex) :
特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1.表示该str不在字符串中存在。
所以,也可以用于对指定判断是否包含。
if(str.indexOf(“aa”)!=-1)
而且该方法即可以判断,又可以获取出现的位置。
2.判断
2.1 字符串中是否包含某一子串。传入的参数为接口类型,Java.lang.CharSequence
boolean contains(str);
2.2 字符串中是否有内容
boolean isEmpty():原理就是判断长度是否为0
2.3 字符串是否以指定的开头
boolean statsWith(str)
2.4 字符串是否以指定内容结尾
boolean endsWith(str)
2.5 判断字符串内容是否相同.复写了Object 类中的equals方法
boolean equals(str)
2.6 判断内容是否相同,并忽略大小写
boolean equalsIgnoreCase();
3.转换
3.1 将字符数组转化成字符串
构造函数 :String (char [] )
String (char[],offset,count): 将字符数组中的一部分转化为字符串。
静态方法:static String copyValueOf(char[] data);
static String copyValueOf (char[] data,int offset,int count)
static String valueOf(char[]):
3.2 将字符串转化成字符数组
char[] toCharArray():
3.3 将字节数组转化为字符串
String (byte [] )
String (byte[],offset,count):将字节数组中的一部分转化为字符串
3.4 将字符串转化为字节数组
byte[] getBytes() :
3.5 将基本数据类型转成字符串
static String valueOf(int)
static String valueOf(double)
// 3 + ./// String.valueOf(3):
特殊:字符串和字节数组在转换过程中,是可以指定编码表的
4.替换
String replace ( char oldChar,char newChar):
如果替换的字符串不存在,返回的还是原串。
5.切割
String[] split(regex):
//注意必须是这个格式 ,正则表达式
6.子串 。获取字符串中的一部分
String substring(begin):
String substring(begin,end):
返回一个新字符串,他是此字符串的一个子字符串。该字符串从指定的beginIndex 处开始,直到索引endIndex - 1处的字符。因此该子字符串的长度为endIndex-beginIndex。
7.转换,去除空格,比较。
7.1将字符串转化成大写或者小写
String toUpperCase():
String toLowerCase():
7.2 将字符串两端多个空格去除
String trim();
7.3 对两个字符串进行自然比较
int copareTo(string ):
String s1 = "a1c"; String s2="aaa"; sop(s1.compareTo(s2));
因为在第二位,2个字符不同,所以第三个字符不用比较。 结果 -48、s1< s2
返回:如果参数字符串等于此字符串,则返回值 0;如果此字符串按字典顺序小于字符串参数,则返回一个小于 0 的值;如果此字符串按字典顺序大于字符串参数,则返回一个大于 0 的值。
字符串的长度和字符串的角标是两个概念,长度是从1开始,角标是从 0 开始
1> 模拟一个 trim 方法,去除字符串两端的空格
思路:1.判断字符串第一个位置是否为空格,如果是继续向下判断,直到不是空格为止,结尾处判断空格也是如此
2.当开始和结尾判断到不是空格的时候就是要获取的字符串
2> 将一个字符串进行反转 。将字符串中指定部分进行反转,"abcdefg“”:
思路: 1. 曾经学习过对数组的元素进行反转
2.将字符串变成数组,对数组反转
3.将反转后的数组变成字符串
4.只要将反转的部分的开始和结束为止作为参数的传递即可
3>
获取一个字符串在另一个字符串中出现的次数。
"abkkcdkkefkkskk"
思路:
1>定义个计数器。
2>获取kk第一次出现的位置。
3>从第一次出现位置后剩余的字符串中继续获取kk出现的位置。
每获取一次就计数一次。
4>当获取不到时,计数完成。
使用split方法,切割字符串,如果字符串最前端就有需切割的字符,那么会多存储一个空字符串,照成切割后,该字符串出现的次数+1
4> 获取两个字符串中最大相同子串。
第一个动作:将短的那个串进行长度一次递减的子串打印。
"abcwerthelloyuiodef"
"cvhellobnm"
思路:
1、将短的那个子串按照长度递减的方式获取到。
2、将每获取到的子串去长串中判断是否包含,
如果包含,已经找到!。
- Java 枚举 String-String
- 【Java】【String】String.intern()
- java string
- java String
- Java String
- Java String
- java String
- JAVA String
- java String
- java String
- Java [String]
- java String
- Java String
- Java string
- java String
- java String
- Java String
- java String
- 【实践】【分离整数和小数部分】
- BZOJ 1007 [HNOI2008]水平可见直线
- HBase的退格键back键使用方法(解决无法使用退格键的问题)
- 导出CSV文件,中文乱码,使用“GB2312”格式导出
- 模拟百万级TCP并发
- java String
- HDFS java API
- 基于Retrofit、OkHttp、Gson封装通用网络框架
- ftp文件上传及下载工具类
- 最小公倍数与最大公约数
- (1.2)Java基本数据类型
- VS快捷键
- 这样写简历,不是为自己加分就是直接被淘汰!
- HBase各版本对Hadoop版本的支持情况