01.常用的字符串方法详解
indexOf方法返回一个整数值,指出String对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。
如果startindex是负数,则startindex被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。
Java中字符串中子串的查找共有四种方法,如下:
1,int indexOf(String str):返回第一次出现的指定子字符串在此字符串中的索引
.2,int indexOf(String str ,int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引
.3,int lastIndexOf(String str):返回在此字符串中最右边出现的指定子字符串的索引
.4,int lastIndexOf(String str,int startIndex):从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。
String str = "thinking in java";
int index = str.indexOf("in");
System.out.println("index:" + index); //index:2
index = str.indexOf("in", 3);
System.out.println("index:" + index); //index:5
// 反向查询位置lastIndexOf()从后向前查找字符/子字符串的位置, 返回起始位置
index = str.lastIndexOf("in");
System.out.println("index:" + index); //index:9
截取子字符串String substring(int start,int end)包含起始位置,不包含结束位置,截取子字符串
// 0123456789012
String host = "www.baidu.com";
// 从开始位置到结束位置(不包含结束位置)
String sub = host.substring(4, 9);
System.out.println(sub); //baidu
// 从第一个参数的位置截取到末尾
sub = host.substring(4);
System.out.println(sub); //baidu.com
// 01234567890123456789012345
String url = "http://tmooc.cn/index.html";
// 截取url中主机域名
String host1 = url.substring(7, 15);
System.out.println(host1);// tmooc.cn
// substring 参数有两种用法, 一种是按照范围截取
// 另外一种是按照长度截取子字符串
String str = url.substring(7, 7 + 5);
System.out.println(str); // tmooc
去除字符串两端的空白
空白包括:空格,回车,换行,Tab
String str =" he llo ";
System.out.println(str); // he llo
String trim =str.trim();
System.out.println(trim); //he llo
// 0123456789012345
String str ="thinking in java";
char c =str.charAt(9);
System.out.println(c); //i
// 0 1 2 345
String str1 = "今天学API";
char ch = str1.charAt(1);
System.out.println(ch); // 天
for (int i = 0; i < str.length(); i++) {
c =str.charAt(i);
System.out.print(c);
}
System.out.println();
/**
* 判断回文字符串
*/
str ="上海自来水来自海上;
boolean flag =true;
for (int i = 0; i < str.length()/2; i++) {
char c1 =str.charAt(i);
char c2 =str.charAt(str.length()-1-i);
if(c1!=c2){
System.out.println("不是回文");
flag =false;
break;
}
}
if(flag){
System.out.println("是回文");
}
/*
str ="上海自来水来自海上";
boolean flag =true;
for (int i = 0; i < str.length()/2; i++) {
char c1 =str.charAt(i);
char c2 =str.charAt(str.length()-1-i);
if(c1!=c2){
flag =false;
break;
}
}
if(flag){
System.out.println("是回文");
}else{
System.out.println("不是回文");
}
*/
/*
str ="上海自来水来自海上";
for (int i = 0; i < str.length()/2; i++) {
char c1 =str.charAt(i);
char c2 =str.charAt(str.length()-1-i);
if(c1!=c2){
System.out.println("不是回文");
return;
//直接结束 后面的不执行
}
}
System.out.println("是回文");
*/
/*
str ="上海自来水来自海上";
for (int i = 0; i < str.length()/2; i++) {
char c1 =str.charAt(i);
char c2 =str.charAt(str.length()-1-i);
if(c1!=c2){
System.out.print("不");
break;
}
}
System.out.println("是回文");
*/
String string = "www.baidu.com";
boolean b1 = string.contains("baidu");
System.out.println(b1); //结果为:true
// 前缀
boolean b2 = string.startWith("www");
System.out.println(b2); //结果为:true
// 后缀 .jpg .png .jpeg判断上传得图片是否合理
boolean b3 = string.endWith("com");
System.out.println(b3); //结果为:true
String str ="我爱Java";
//转化成大写字符
String upper =str.toUpperCase();
System.out.println(upper);
//转化成小写字符
String lower =str.toLowerCase();
System.out.println(lower);
int d =1;
String str =String.valueOf(d);
System.out.println(str);
double dou =1.1;
str =String.valueOf(dou);
System.out.println(str);
char[] ch =new char[10];
str =String.valueOf(ch);
//加""空串 也可以转换为字符串 转换频率低时可以使用
str =d+"";
/ **
* StringBuilder专门用来修改字符串内容的API
* String由于其优化设计导致的问题就是不能频繁修改(每次都创建新对象)
*测试StringBuilder的动态字符串功能可以增加改查
*需要频繁修改字符串时用StringBuilder
* /
String str ="努力学习Java";
StringBuilder builder =new StringBuilder(str);
// StringBuilder中默认字符数组长度为0
System.out.println(builder.length()); //8
/**
* 努力学习Java
* 努力学习Java,为了找个好工作!
* append()功能是增加一段字符串
*/
builder.append(",为了找个好工作!");
str =builder.toString();
System.out.println(str);
/**
* 努力学习Java,为了找个好工作!
* 努力学习Java,就是为了改变世界!
* replace()功能是替换一段字符串
*/
builder.replace(9, 16, "就是为了改变世界");
str =builder.toString();
System.out.println(str);
/**
* 努力学习Java,就是为了改变世界!
* ,就是为了改变世界!
* delete()功能是删除一段字符串
*/
builder.delete(0, 8);
str =builder.toString();
System.out.println(str);
/**
* ,就是为了改变世界!
* 活着,就是为了改变世界!
* insert()功能是插入一段字符串
*/
builder.insert(0, "活着");
str =builder.toString();
System.out.println(str);