一篇文章看懂Java字符串操作

作者:/少司命 时间:2023-07-17 02:29:44 

✨字符, 字节与字符串

🎈字符与字符串

字符串内部包含一个字符数组,String 可以和 char[] 相互转换.

NO方法名称类型描述
1public String(char value[])构造将字符数组中的所有内容变字符串
2public String(char value[],int offset,int count)构造将部分字符数组的内容变为字符串
3public char charAt(int index)普通取得指定索引位置的字符串,索引从0开始
4public char[] toChararray()普通将字符串变为字符数组返回

代码示例: 获取指定位置的字符

public static void main(String[] args) {        String str = "hello" ;        System.out.println(str.charAt(0));// 下标从 0 开始        System.out.println(str.charAt(1));        System.out.println(str.charAt(2));        System.out.println(str.charAt(3));     }

一篇文章看懂Java字符串操作

代码示例: 字符串与字符数组的转换

public static void main(String[] args) {        String str = "helloworld" ;        // 将字符串变为字符数组        char[] data = str.toCharArray() ;        for (int i = 0; i < data.length; i++) {            System.out.print(data[i]+" ");        }     }

一篇文章看懂Java字符串操作

public static void main(String[] args) {        String str = "helloworld" ;        // 将字符串变为字符数组        char[] data = str.toCharArray() ;        // 字符数组转为字符串        System.out.println(new String(data)); // 全部转换        System.out.println(new String(data,5,5)); // 部分转换    }

一篇文章看懂Java字符串操作

 代码示例: 给定字符串一个字符串, 判断其是否全部由数字所组成

public static boolean isNumberChar(String s) {        for (int i = 0; i < s.length(); i++) {            char c = s.charAt(i);            //判断某个字符是不是数字            if(c < '0' || c > '9') {                return false;            }         }        return true;    }

public static void main(String[] args) {        String str = "124567";        System.out.println(isNumberChar(str));    }

一篇文章看懂Java字符串操作

public static void main(String[] args) {        String str = "1d4567";        System.out.println(isNumberChar(str));    }

一篇文章看懂Java字符串操作

🎈字节与字符串

字节常用于数据传输以及编码转换的处理之中,String 也能方便的和 byte[] 相互转换

NO方法名称类型描述
1public String(byte bytes[])构造将字节数组变为字符串
2public String(byte bytes[],int offset,int length)构造将部分字节数组中的内容变为字符串
3public bye[] getBytes()普通将字符串以字节数组的形式返回
4

public byte[] getBytes(String charsetNAme)throws

UnsupportedEncodingException

普通编码转化处理

代码示例: 实现字符串与字节数组的转换处理

public static void main(String[] args) {        String str = "helloworld" ;        // String 转 byte[]        byte[] data = str.getBytes() ;        for (int i = 0; i < data.length; i++) {            System.out.print(data[i]+" ");        }        System.out.println();        // byte[] 转 String        System.out.println(new String(data));    }

一篇文章看懂Java字符串操作

public static void main(String[] args)  {        byte[] bytes = {97,98,99,100};        String str = new String(bytes,1,3);        System.out.println(str);     }

一篇文章看懂Java字符串操作

🎈小结

byte[] 是把 String 按照一个字节一个字节的方式处理, 这种适合在网络传输, 数据存储这样的场景下使用. 更适合 针对二进制数据来操作.

char[] 是吧 String 按照一个字符一个字符的方式处理, 更适合针对文本数据来操作, 尤其是包含中文的时候.

✨字符串常见操作

🎈字符串比较

No方法名称类型描述
1public boolean equals(Object anObject)普通区分大小的比较
2public boolean equalsIanorecase(String anotherString)普通不区分大小写的比较
3public int compareTo(String anotherString)普通比较两个字符串大小关系

代码示例: 不区分大小写比较

public static void main(String[] args) {        String str1 = "hello" ;        String str2 = "Hello" ;        System.out.println(str1.equals(str2)); // false        System.out.println(str1.equalsIgnoreCase(str2)); // true     }

一篇文章看懂Java字符串操作

在String类中compareTo()方法是一个非常重要的方法,该方法返回一个整型,该数据会根据大小关系返回三类内容: 

1. 相等:返回0.

2. 小于:返回内容小于0.

3. 大于:返回内容大于0。


public static void main(String[] args) {        System.out.println("A".compareTo("a")); // -32        System.out.println("a".compareTo("A")); // 32        System.out.println("A".compareTo("A")); // 0        System.out.println("AB".compareTo("AC")); // -1        System.out.println("刘".compareTo("杨"));    }

一篇文章看懂Java字符串操作

compareTo()是一个可以区分大小关系的方法,是String方法里是一个非常重要的方法。

字符串的比较大小规则, 总结成三个字 "字典序" 相当于判定两个字符串在一本词典的前面还是后面. 先比较第一 个字符的大小(根据 unicode 的值来判定), 如果不分胜负, 就依次比较后面的内容

🎈字符串查找

从一个完整的字符串之中可以判断指定内容是否存在,对于查找方法有如下定义:

NO方法名称类型描述
1public boolean contains(CharSequence s)普通判断一个子字符串是否存在
2public int indexOf(String str)普通从头开始查找指定字符串的位置,查到了返回位置的开始索引,如果查不到返回-1
3public int indexOf(String str,int fromIndex)普通从指定位置查找子字符串位置
4public int LastIndexOf(String str)普通从后向前查找子字符串位置
5public int LastIndexOf(String str, int fromIdex)普通从指定位置由后向前查找
6public boolean startWith (String prefix)普通判断是否以指定字符串开头
7public boolean startWith(String prefix, int toffset)普通从指定位置开始判断是否以指定字符串开头
8public boolean endWith(String suffix)普通判断是否以指定字符串结尾

代码示例: 字符串查找,最好用最方便的就是contains()

public static void main(String[] args) {        String str = "helloworld" ;        System.out.println(str.contains("world"));         System.out.println(str.contains("forld"));    }

一篇文章看懂Java字符串操作

 代码示例: 使用indexOf()方法进行位置查找

public static void main(String[] args) {        String str = "helloworld" ;        System.out.println(str.indexOf("world")); // 5,w开始的索引        System.out.println(str.indexOf("bit")); // -1,没有查到        if (str.indexOf("hello") != -1) {            System.out.println("可以查到指定字符串!");        }    }

一篇文章看懂Java字符串操作

 代码示例: 使用indexOf()的注意点

public static void main(String[] args) {        String str = "helloworld" ;        System.out.println(str.indexOf("l")); // 2        System.out.println(str.indexOf("l",5)); // 8        System.out.println(str.lastIndexOf("l")); // 8    }

一篇文章看懂Java字符串操作

 代码示例: 判断开头或结尾

public static void main(String[] args) {        String str = "**@@helloworld!!" ;        System.out.println(str.startsWith("**")); // true        System.out.println(str.startsWith("@@",2)); // ture        System.out.println(str.endsWith("!!")); // true    }

一篇文章看懂Java字符串操作

 🎈字符串替换

使用一个指定的新的字符串替换掉已有的字符串数据,可用的方法如下

No方法名称类型描述
1public String replaceAll(String regex,String replacement)普通替换所有指定的内容
2public String replaceFirst(String regex, String replacement)普通替换首个内容

代码示例: 字符串的替换处理

public static void main(String[] args) {        String str = "helloworld" ;        System.out.println(str.replaceAll("l", "_"));        System.out.println(str.replaceFirst("l", "_"));    }

一篇文章看懂Java字符串操作

 注意事项: 由于字符串是不可变对象 , 替换不修改当前字符串, 而是产生一个新的字符串

 🎈字符串拆分

可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串。

NO方法名称类型描述
1public String[] split(String regex)普通将字符串全部拆分
2public String[] split(String regex,int limit)普通将字符串部分拆分

代码示例: 实现字符串的拆分处理

public static void main(String[] args) {        String str = "hello world hello yu" ;        String[] result = str.split(" ") ; // 按照空格拆分        for(String s: result) {            System.out.println(s);        }    }

一篇文章看懂Java字符串操作

代码示例: 字符串的部分拆分

public static void main(String[] args) {        String str = "hello world hello yu" ;        String[] result = str.split(" ",2) ;        for(String s: result) {            System.out.println(s);        }    }

一篇文章看懂Java字符串操作

代码示例: 拆分IP地址

public static void main(String[] args) {        String str = "192.168.1.1" ;        String[] result = str.split("\\.") ;        for(String s: result) {            System.out.println(s);        }    }

一篇文章看懂Java字符串操作

 注意事项:

1. 字符"|","*","+"都得加上转义字符,前面加上"\".

2. 而如果是"",那么就得写成"\\".

3. 如果一个字符串中有多个分隔符,可以用"|"作为连字符

代码示例: 多次拆分

public static void main(String[] args) {        String str = "name=zhangsan&age=18" ;        String[] result = str.split("&") ;        for (int i = 0; i < result.length; i++) {            String[] temp = result[i].split("=") ;            System.out.println(temp[0]+" = "+temp[1]);        }    }

一篇文章看懂Java字符串操作

 🎈字符串截取

从一个完整的字符串之中截取出部分内容。可用方法如下:

NO方法名称类型描述
1public String substring(int beginIndex)普通从指定索引截取到结尾
2public String substring(int beginIndex, int endIndex)普通截取部分内容

代码示例: 观察字符串截取

public static void main(String[] args) {        String str = "helloworld" ;        System.out.println(str.substring(5));        System.out.println(str.substring(0, 5));    }

一篇文章看懂Java字符串操作

 注意事项:

1. 索引从0开始

2. 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标

🎈其他操作方法

NO方法名称类型描述
1public String trim()普通去掉字符串的左右空格,保留中间空格
2public String toUpperCase()普通字符串转大写
3public String toLowerCase()普通字符串转小写
4public native String intern()普通字符串入池操作
5public String concat(String str)普通字符串连接,等同于+,不入池
6public int length()普通取得字符串长度
7public boolean isEmpty普通判断是否为空字符串,但不是null,而是长度0

代码示例: 观察trim()方法的使用


public static void main(String[] args) {
       String str = " hello world " ;
       System.out.println("["+str+"]");
       System.out.println("["+str.trim()+"]");
   }

一篇文章看懂Java字符串操作

 代码示例: 大小写转换


public static void main(String[] args) {
       String str = " hello%$$%@#$%world 哈哈哈 " ;
       System.out.println(str.toUpperCase());
       System.out.println(str.toLowerCase());
   }

一篇文章看懂Java字符串操作

 代码示例: 字符串length()


public static void main(String[] args) {
       String str = " hello%$$%@#$%world 哈哈哈 " ;
       System.out.println(str.length());
   }

一篇文章看懂Java字符串操作

 注意:数组长度使用数组名称.length属性,而String中使用的是length()方法

代码示例: 观察isEmpty()方法


public static void main(String[] args) {
       System.out.println("hello".isEmpty());
       System.out.println("".isEmpty());
       System.out.println(new String().isEmpty());
   }

一篇文章看懂Java字符串操作

 String类并没有提供首字母大写操作,需要自己实现

代码示例: 首字母大写


public static void main(String[] args) {
           System.out.println(fistUpper("yuisama"));
           System.out.println(fistUpper(""));
           System.out.println(fistUpper("a"));
       }
       public static String fistUpper(String str) {
           if ("".equals(str)||str==null) {
               return str ;
           }
           if (str.length()>1) {
               return str.substring(0, 1).toUpperCase()+str.substring(1) ;
           }
           return str.toUpperCase() ;

}

一篇文章看懂Java字符串操作

来源:https://blog.csdn.net/qq_50156012/article/details/121435378

标签:java,字符串,操作
0
投稿

猜你喜欢

  • c#中文转unicode字符示例分享

    2022-05-26 05:07:47
  • Java实现PDF转为Word文档的示例代码

    2021-10-05 02:19:26
  • Intellij IDEA 2019 最新乱码问题及解决必杀技(必看篇)

    2023-12-04 18:30:02
  • c#开发word批量转pdf源码分享

    2022-01-12 07:37:29
  • 基于java中的流程控制语句总结(必看篇)

    2023-11-08 09:56:59
  • java框架之maven是用来做什么的

    2023-04-20 21:59:43
  • Android简单实现菜单拖拽排序的功能

    2023-03-10 22:32:31
  • MyBatis-Plus分页插件不生效的解决方法

    2023-03-10 20:24:58
  • java实现十六进制字符unicode与中英文转换示例

    2021-05-29 18:19:29
  • Android多渠道打包的方法步骤

    2022-10-17 12:05:07
  • WPF弹出自定义窗口的方法

    2023-10-18 20:52:04
  • 使用C#实现在屏幕上画图效果的代码实例

    2022-09-11 05:12:32
  • C#泛型的逆变协变之个人理解

    2021-05-28 16:33:03
  • Mybatis 动态SQL的几种实现方法

    2023-11-10 12:15:15
  • Java爬虫实现Jsoup利用dom方法遍历Document对象

    2023-06-15 07:52:36
  • RollViewPager图片轮播效果开源框架使用方法详解

    2021-12-06 07:22:59
  • JDK动态代理过程原理及手写实现详解

    2022-07-07 00:35:23
  • android开发教程之判断是手机还是平板的方法

    2022-10-22 12:30:41
  • Java实现文件上传到服务器本地并通过url访问的方法步骤

    2021-12-01 11:45:20
  • c#测试反射性能示例

    2021-12-19 23:13:47
  • asp之家 软件编程 m.aspxhome.com