字符串
看到字符串, 想到字符串处理中, 有
字符串的反转, 初级面试中常用到
字符串分割成字符串组, 初级面试中常用到
字符串中的替换, 初级面试中常用到
字符串中的截取, 初级面试中常用到
反转 reverse,java 中字符串没有 reverse 这个方法, Python 中有, 如果未有编程语言限制, 可以直接用 python 语言
str.reverse() 实现;
那用 Java 呢, 也很简单, 就是将所有字符倒序;
有时候, 面试要求将所有的方法都写下来
Java 中 String 没有 reverse 方法, StringBuilder 有这个方法
- String str = "12345";
- @Test
- public void Test() {
- StringBuilder stringBuilder = new StringBuilder();
- char[] chars = str.toCharArray();
- System.out.println("字符串的长度是" + chars.length);
- int m = 1;
- for (int i = chars.length; i>= 1; i--) {
- stringBuilder = stringBuilder.append(chars[i - 1]);
- System.out.println("the" + m + "char is--" + chars[i - 1]);
- m++;
- }
- System.out.println(stringBuilder.toString());
- }
- @Test
- public void Test2() {
- StringBuilder stringBuilder = new StringBuilder(str);
- System.out.println(stringBuilder.reverse().toString());
- }
- @Test
- public void Test3() {
- char[] chars = str.toCharArray();
- String str_reverse="";
- for (int i = chars.length - 1; i>= 0; i--) {
- str_reverse += chars[i];
- }
- System.out.println(str_reverse);
- }
- @Test
- public void Test4() {
- String str_reverse = "";
- int length = str.length();
- for (int i = 0; i < length; i++) {
- str_reverse = str.charAt(i) + str_reverse;
- }
- System.out.println(str_reverse);
- }
第一种, 用了 StringBuilder() 中字符 append 连接,
字符串中函数 toCharArray(); 将字符串变成字符数组, 然后反向遍历
第二种, 直接用了 StringBuilder() 中 reverse 方法
第三种, 字符串中函数 toCharArray(); 方法, 反向将字符串连接
第四种, 字符串中的函数. charAt(i) 方法, 获取指定位置的字符, 后面的字符依次遍历并且链接在首位
字符串分割, 可以根据指定字符, 指定字符串, 指定正则表达式进行分割, 分几段也可以限制
- public class TestString2 {
- String str = "bb1a2a3a4a5a";
- @Test
- public void Test() {
- String[] str2 = str.split("a");
- for (int i = 0; i < str2.length; i++) {
- System.out.println(str2[i]);
- }
- }
- @Test
- public void Test2() {
- String[] str2 = str.split("a",3);
- for (int i = 0; i < str2.length; i++) {
- System.out.println(str2[i]);
- }
- }
- @Test
- public void Test3() {
- String[] str2 = str.split("\\d");
- for (int i = 0; i < str2.length; i++) {
- System.out.println(str2[i]);
- }
- }
- @Test
- public void Test4() {
- String[] str2 = str.split("\\d",3);
- for (int i = 0; i < str2.length; i++) {
- System.out.println(str2[i]);
- }
- }
- }
字符串中的替换, 主要有 replace 和 replaceAll
- public class TestString3 {
- String str = "a1a2a3a4a5a";
- @Test
- public void Test() {
- String str1= str.replace("a","b");
- System.out.println(str1);
- String str2= str.replace("a4","bE");
- System.out.println(str2);
- String str3= str.replaceAll("\\d","E");
- System.out.println(str3);
- }
- }
字符串中的截取, 主要是 substring()
- public class TestString4 {
- @Test
- public void TestSubString() {
- String str= "123456789";
- System.out.println(str.substring(0, 7));
- System.out.println(str.substring(1, 7));
- System.out.println(str.substring(4));
- System.out.println(str.substring(0));
- }
- }
更多更详细的方法, 见下图
图片可以方法看, 图片链接
https://img2018.cnblogs.com/blog/1064427/201901/1064427-20190107160519024-23600065.png
来源: https://www.cnblogs.com/qianjinyan/p/10218906.html