java的一些常用对字符串的操作
字符串的一些常用操作,有些我演示我没在前的文档注释上写,但代码里面是有,望大家可以自己仔细的耐心找一下,写的不是很全面望大家谅解一下, 谢谢。
如果大家找不到到的话可以去java的官方文档里面看看
[java参考文档] (https://pan.baidu.com/s/13xUSFwG7cqRDOjzMkdh6Rg)
提取码:iv3x
下面有StringBuffer跟String 的执行速度的演示。
package ZiFuChuan;
import java.util.Scanner;
public class TestString {
/**
* java常用方法
* 判断字符串是否为空:.isEmpty()
* 比较内容:.equals()
* 获取字符串的长度:.length();
* 获取字符串对应索引位置的字符:.charAt()
* 获取字符中从左到右出现的第一个字符的位置:.indexOf()
* 从右到左:.lastIndexOf(); 如果没有出现返回值是-1
*
* 判断字符串中是否包含该字符:
* String hjk = "abc";
* if(indexOf("a")==-1){
* 表示没有
* }else{
* 否则这就是有
* }
* 拼接字符串 .concat();
* 忽略大小写.equalsIgnoreCase("Y")
* 判断是否已123开始 .startsWith("123")
* 判断是否已8结束 .endsWith("8")
* 字符串转换大小写 大写:.toUpperCase() 小写:.toLowerCase()
* StringBuffer的执行时间是比String快的
* StringBuffer 拼接 sbBuffer.append("你好");
*
* */
public static void main(String[] args) {
//属性
// String name = "张三";
// int age = 20;
// double heiginht = 170.0;
/**
* 创建字符串的三种方式
* */
String name = "abc";
String str = new String();
System.out.println(str);
String str3 = new String("abc");
String name2 = "abc";
System.out.println(str3 == name);
System.out.println(str3.equals(name));
System.out.println(name2 == name);
System.out.println(name2.equals(name));
//字符串中 == 判断是的是内存地址 equals 判断内容
//isEmpty(); 判断字符串是否为空
System.out.println("是否为空:"+name.isEmpty());
System.out.println("**********************************************************");
//判断字符串是否为空的三种方式
name="";
System.out.println("是否为空:"+name.isEmpty());
System.out.println("是否为空:"+(name.length()==0));
System.out.println("是否为空:"+name.equals(""));
//执行速度 name.isEmpty()>name.length()==0>name.equals("")
System.out.println("*********************************************************");
//判断字符串的长度
System.out.println("是否为空:"+name.length());
System.out.println("**********************************************************");
//Scanner input = new Scanner(System.in);
System.out.println("请输入性别:");
//获取返回值指定索引处的char值,索引范围从0开始
//char sex = input.next().charAt(0);
//System.out.println(sex);
str = "123456";
System.out.println(str.charAt(1));
System.out.println("**********************************************************");
System.out.println("indexOF 字符串从左侧开始查找,找到后返回第一个对应的索引位置。");
//这里有2个b只返回第一个b后面的就不会再找了
System.out.println("abcabc".indexOf("b"));//1
//如果没有找到结果e,后面的返回值是-1
System.out.println("abcabc".indexOf("e"));//-1
/**
*
* indexOf 邮箱案例
* indexOf 是从左侧开始找找到一个为止,不会再往后面找
* lastIndexOf 从右侧开始找,找到右侧开始第一个为止,不会再往后面找,
* 返回的数据是从左侧开始数的。
*
* */
//邮箱格式
String email = "123456@126.com";
if (email.indexOf("@")==-1) {
System.out.println("邮箱格式输入错误");
}else {
System.out.println("邮箱输入正确");
}
String abc = "你是我的小苹果,小呀小苹果,";
System.out.println("indexOf:"+abc.indexOf("小"));
System.out.println("lastIndexOf:"+abc.lastIndexOf("小"));
System.out.println("*********************************************************");
//截取字符串 截取邮箱后缀
email = "12345@126.com";
//.substring()从开始位置截取到结尾,而且包含开始位置
String hz = email.substring(6);
System.out.println(hz);//126.com
//.substring(beginIndex,endIndex) 从beginIndex开始截取,截取到endIndex结束(前包后不包)
String ym = email.substring(6, 9);
System.out.println(ym);//126
System.out.println("********************************************************");
//替换字符串
System.out.println(abc);
String xs = abc.replace("小", "大");
System.out.println("把小替换成大:"+xs);
System.out.println("**********************************************************");
//对字符串进行拆分 返回值类型 String[];
//把一首诗 按照“,”来换行
String shi = "鹅鹅鹅,曲项向天歌,白毛浮绿水,红掌拨清波";
System.out.println("没有拆分过的:"+shi);
String [] strings = shi.split(",");
//之后遍历数组
for (String string : strings) {
System.out.println(string);
}
//还有一种方法,就是直接用上面的replace()把 , 替换成 \n \n:换行的意思
String st2 = shi.replace(",", "\n");
System.out.println("替换:"+st2);
System.out.println("*******************************************************");
//去掉两端空格 .trim()只能去掉两端的空格,但是中间的空格不能去掉
String user = " a b c ".trim();
System.out.println("开始"+user+"结束");
System.out.println("*********************************************************");
//拼接字符串.
str = "123";
str3 = "456";
//平常用法
System.out.println("平常用法:"+str+str3);
//.concat()用法
System.out.println(".concat()用法:"+str.concat(str3));
System.out.println("***********************************************************");
//忽略大小写.equalsIgnoreCase("Y")
Scanner input = new Scanner(System.in);
//System.out.println("请输入Y/N:");
//String sr = input.next();
//这种方式输入小写的Y/N的时候是提示输入错误的
/*if (sr.equals("Y")) {
System.err.println("继续");
}else if (sr.equals("N")) {
System.out.println("退出");
}else {
System.out.println("输入错误");
}
*/
//而这种无论你输入的是大写还是小写都是可以的不会出现错误
/*if (sr.equalsIgnoreCase("Y")) {
System.err.println("继续");
}else if (sr.equalsIgnoreCase("Y")) {
System.out.println("退出");
}else {
System.out.println("输入错误");
}*/
System.out.println("**********************************************************");
String phone = "123888888";
System.out.println("是否已123开始:"+phone.startsWith("123"));
//判断是否已8结束 .endsWith("8")
System.out.println("是否已8结束:"+phone.endsWith("8"));
System.out.println("*********************************************************");
// 字符串转换大小写
String msg="abcDefG123你好";
System.out.println(msg.toUpperCase());
System.out.println(msg.toLowerCase());
System.out.println("**********************************************************");
//StringBuffer 当对字符串进行频繁修改时使用,可以大大提高效率
//String 转-->StringBuffer
String sname = "abcde";
StringBuffer sbBuffer= new StringBuffer(sname);
//StringBuffer 转-->String
String srString = sbBuffer.toString();
//StringBuffer 拼接 .append("你好");
//上面sbBuffer里面已经有abcde
sbBuffer.append("你好");
String srString2 = sname+"你好";
System.out.println(sbBuffer);
System.out.println(sname);//abcde 由于sbBuffer已经拼接好了,所以这时候sname还是abcde
System.out.println(sbBuffer.insert(2, "你好"));//这边替换一下,在输出 sbBuffer
System.out.println(sbBuffer);
}
下面是对StringBuffer跟String 的执行速度的演示, StringBuffer的执行速度是比String快的,感兴趣的大家可以自己把代码运行一下
package ZiFuChuan;
public class Test {
//StringBuffer跟String的速度演示
public static void main(String[] args) {
long t = System.currentTimeMillis();
String string = "abc";
StringBuffer sBuffer = new StringBuffer();
for (int i = 0; i < 10000; i++) {
//string=string+"a";
sBuffer.append("a");
}
long t2 = System.currentTimeMillis();
System.err.println(t2-t);
}
}

浙公网安备 33010602011771号