String 类:
String 类在 java.lang 包中, java 使用 String 类创建一个字符串变量, 字符串变量属于对象. String 类对象创建后不能修改, StringBuffer & StringBuilder 类 http://www.runoob.com/java/java-stringbuffer.html . 这时我们会问, 为什么我们 String 变量赋值不就是改变了吗? 其实不是的, 赋值后将会生成新的对像来存放新的内容, 原先的对象依旧在内存中, 但是 s 不在指向它, 那么这个对象就会成为垃圾内存, 在某一个特定的时刻有 Java 虚拟机回收. 详情解释请点击 https://blog.csdn.net/suyu_yuan/article/details/51396972 包含在一对双引号之间.
String 字符串变量的创建:
声明: String 变量名;
String str;
声明并初始化: String 变量名 ="初始值";
String str = "挨点博客";
String 常用方法:
1,int length(); 语法: 字符串变量名. length(); 返回值为 int 类型. 得到一个字符串的字符个数 (中, 英, 空格, 转义字符皆为字符, 计入长度)
- String a="挨点 aidian \t\n";
- int l = a.length();
- System.out.println(l);
运行结果: 11
2,char charAt(值); 语法 : 字符串名. charAt(值); 返回值为 char 类型. 从字符串中取出指定位置的字符
- String str="张三疯";
- char c = str.charAt(2);
- System.out.println("指定字符为:" + c);
运行结果: 指定字符为: 疯
3,char toCharArray(); 语法 : 字符串名. toCharArray(); 返回值为 char 数组类型. 将字符串变成一个字符数组
- String str="张三疯";
- char c[] = str.toCharArray();
- for (int i = 0; i < c.length; i++)
- System.out.println("转为数组输出:" + c[i]);
运行结果:
转为数组输出: 张
转为数组输出: 三
转为数组输出: 疯
4,int indexOf("字符") 语法 : 字符串名. indexOf("字符"); 字符串名. indexOf("字符", 值); 查找一个指定的字符串是否存在, 返回的是字符串的位置, 如果不存在, 则返回 - 1 .
in lastIndexOf("字符") 得到指定内容最后一次出现的下标
- String str="只为挨你近一点";
- int a1 = str.indexOf("你");// 查找字符你的位置
- int a2 = str.indexOf("为", 2);// 查找为的位置, 从第 3 个开始查找
- int a3 = str.lastIndexOf("点");
- System.out.println("你的位置为:" + a1);
- System.out.println("为的位置为:" + a2);
- System.out.println("点最后出现的位置为:" + a3);
运行结果:
你的位置为: 3
为的位置为:-1
点最后出现的位置为: 7
5,toUpperCase(); toLowerCase(); 字符串大小写的转换
- String str="hello world";
- System.out.println("将字符串转大写为:" + str.toUpperCase());
- System.out.println("将字符串转换成小写为:" + str.toUpperCase().toLowerCase());
运算结果:
将字符串转大写为: HELLO WORLD
将字符串转换成小写为: hello world
6,String[] split("字符") 根据给定的正则表达式的匹配来拆分此字符串. 形成一个新的 String 数组.
- String str = "boo:and:foo";
- String[] arr1 = str.split(":");
- String[] arr2 = str.split("o");
运行结果:
- arr1 //{ "boo", "and", "foo" }
- arr2 //{ "b", "",":and:f" }
7,boolean equals(Object anObject) 语法 : 字符串变量名. wquals(字符串变量名); 返回值为布尔类型. 所以这里用 if 演示. 比较两个字符串是否相等, 返回布尔值
- String str = "hello";
- String str1="world";
- if(str.equals(str1))
- {
- System.out.println("这俩字符串值相等");
- }
- else
- {
- System.out.println("这俩字符串值不相等");
- }
运行结果:
这俩字符串值不相等
8,trim(); 去掉字符串左右空格 replace(char oldChar,char newChar); 新字符替换旧字符, 也可以达到去空格的效果一种.
- String str = "挨点博客";
- System.out.println("去掉左右空格后:" + str.trim());
运行结果:
去掉左右空格后: 挨点博客
第二种:
- String str = "挨点博客";
- System.out.println("去掉左右空格后:" + str.replace("",""));
运行结果:
去掉左右空格后: 挨点博客
9,String substring(int beginIndex,int endIndex) 截取字符串
- String str = "123 挨点博客 456";
- System.out.println("截取后的字符为:" + str.substring(0,3));// 截取 0-3 个位置的内容 不含 3
- System.out.println("截取后字符为:" + str.substring(2));// 从第 3 个位置开始截取 含 2
运行结果:
截取后的字符为: 123
截取后字符为: 3 挨点博客 456
10,boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的值是否一模一样, 返回一个布尔值
- String str = "HELLO WORLd";
- String str1 = "hello world";
- if(str.equalsIgnoreCase(str1))
- {
- System.out.println("两个字符串相等");
- }
- else
- {
- System.out.println("两个字符串不相等");
- }
运行结果:
两个字符串相等
11,boolean contains(String) 判断一个字符串里面是否包含指定的内容, 返回一个布尔值
- String str = "HELLO WORLd";
- String str1 = "WO";
- if(str.contains(str1))
- {
- System.out.println("str 内容中存在 WO");
- }
- else
- {
- System.out.println("抱歉没找着");
- }
运行结果:
str 内容中存在 WO
12,boolean startsWith( http://tool.oschina.net/uploads/apidocs/jdk-zh/java/lang/String.html ) 测试此字符串是否以指定的前缀开始. 返回一个布尔值
- String str = "HELLO WORLd";
- String str1 = "HE";
- if(str.startsWith(str1))
- {
- System.out.println("str 内容中存在 HE 前缀开头");
- }
- else
- {
- System.out.println("抱歉没找着");
- }
运行结果:
str 内容中存在 HE 前缀开头
13,boolean endsWith( http://tool.oschina.net/uploads/apidocs/jdk-zh/java/lang/String.html ) 测试此字符串是否以指定的后缀结束. 返回一个布尔值
- String str = "挨点博客";
- String str1 = "博客";
- if(str.endsWith(str1))
- {
- System.out.println("str 内容中存在 \'博客 \'后缀结束");
- }
- else
- {
- System.out.println("抱歉没找着");
- }
运行结果:
str 内容中存在'博客'后缀结束
14, 上面提到了 replace 方法, 接下继续补充一下 String replaceAll(String,String) 将某个内容全部替换成指定内容, String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容
- String str = ",,,,,, 挨点博客,,,,,";
- System.out.println("改变后:" + str.replaceAll(",","a"));
运行结果: 改变后: a,,,,, 挨点博客,,,,,
- String str = ",,,,,, 挨点博客, 帅吗, 帅吗,,,,,";
- System.out.println("改变后:" + str.replaceFirst("帅吗","很帅哦"));
运行结果: 改变后:,,,,,, 挨点博客, 很帅哦, 帅吗,,,,,
巩固的时候查阅了很多资料. 给大家推荐一个工具, 是一个 java 使用手册在线版 http://tool.oschina.net/apidocs/apidoc?api=jdk-zh 希望对你们的学习有帮助, 并多多支持下.
如何有错误的, 或者有补充的请在评论区评论, 我再改正与补充.
原创内容, 转载还望注明来源, 谢谢.
来源: https://www.cnblogs.com/aidian/p/8805540.html