当前位置: 首页 > 图灵资讯 > 技术篇> Java零基础入门-字符串

Java零基础入门-字符串

来源:图灵教育
时间:2023-11-19 17:34:00

Java零基础入门-字符串前言

Java是一种非常强大的编程语言,广泛应用于计算机领域。作为Java的入门阶段,掌握字符串的基本概念和使用方法非常重要。它也是Java程序中常用的数据类型。

本文将详细阐述Java字符串的定义、创建和内容操作,为读者带来更全面、更深入的理解。

摘要

本文主要介绍了Java字符串的定义、创建和内容操作,包括如何创建字符串、如何获得字符串的长度、如何连接和分割字符串、如何搜索和更换字符串等。

简介

Java字符串是指一串字符的序列,是Java中的基本数据类型。字符串可以是任何字符集,如数字、字母、特殊字符等。字符串在Java中是不可变的,一旦创建,其内容就无法改变。

Java字符串提供了一系列操作字符串的方法,如创建、连接、分割、搜索、替换等。使用这些方法可以很容易地处理字符串。

源代码分析创建字符串

Java提供了两种创建字符串的方法:直接赋值和String类的结构方法。

// Stringg直接赋值 str1 = "hello world";// Stringg使用结构方法 str2 = new String("hello world");
获取字符串的长度

在Java中使用length()获取字符串长度的方法。

String str = "hello world";int len = str.length();System.out.println(len);
字符串连接

在Java中使用+concat()实现字符串连接的方法。

String str1 = "hello";String str2 = "world";String str3 = str1 + str2;String str4 = str1.concat(str2);System.out.println(str3);System.out.println(str4);
字符串分割

在Java中使用split()方法分割字符串。

String str = "hello,world,java";String[] arr = str.split(",");for (String s : arr) {    System.out.println(s);}
字符串查找

在Java中使用indexOf()在字符串中找到指定字符或字符串的位置。

String str = "hello world";int index = str.indexOf("o");System.out.println(index);
字符串替换

在Java中使用replace()替换字符串的方法。

String str = "hello world";String newStr = str.replace("world", "java");System.out.println(newStr);
应用场景案例实现字符串加密
public static String encrypt(String str, int key) {    char[] chars = str.toCharArray();    for (int i = 0; i < chars.length; i++) {        chars[i] = (char) (chars[i] + key);    }    return new String(chars);}public static String decrypt(String str, int key) {    char[] chars = str.toCharArray();    for (int i = 0; i < chars.length; i++) {        chars[i] = (char) (chars[i] - key);    }    return new String(chars);}
实现字符串倒序输出
public static String reverse(String str) {    char[] chars = str.toCharArray();    int left = 0;    int right = chars.length - 1;    while (left < right) {        char temp = chars[left];        chars[left] = chars[right];        chars[right] = temp;        left++;        right--;    }    return new String(chars);}
优缺点分析优点
  • 字符串在Java中具有很高的应用价值,是一种非常常用的数据类型。
  • Java字符串提供了丰富的方法,可以操作各种字符串,非常方便实用。
  • Java中的字符串是不可变的,可以大大提高程序的安全性。
缺点
  • 字符串在Java中是不可变的,这意味着每次修改字符串时,都会创建一个新的字符串对象,这可能会消耗更多的系统资源和内存。
String类代码方法介绍
  • String():产生内容为空的字符串
  • String(byte[] bytes):使用平台默认字符集将byte数组转换为字符串
  • String(byte[] bytes, Charset charset):使用指定字符集将byte数组转换为字符串
  • String(byte[] bytes, int offset, int length):使用平台默认字符集将byte数组的一部分转换为字符串
  • String(char[] value):使用字符数组中的字符序列来创建字符串
  • String(char[] value, int offset, int count):使用字符数组的一部分创建字符串
  • String(int[] codePoints, int offset, int count):使用Unicode字符数组的一部分创建字符串
  • String(String original):与字符串参数相同的字符串
  • String(StringBuffer buffer):使用Stringbuffer中的字符序列来创建字符串
  • String(StringBuilder builder):使用StringBuilder中的字符序列来创建字符串
常用方法
  • charAt(int index):返回指定索引处的字符
  • compareTo(String anotherString):按字典序比较两个字符串,等于返回0,大于返回正数,小于返回负数
  • concat(String str):将指定字符串连接到原字符串的末端
  • contains(CharSequence s):判断字符串是否包含指定字符串
  • endsWith(String suffix):判断字符串是否以指定字符串结束
  • equals(Object anObject):将字符串与指定对象进行比较
  • equalsIgnoreCase(String anotherString):将字符串与指定字符串进行比较,不考虑大小写
  • getBytes():使用平台的默认字符集将字符串编码为byte序列,并将结果存储在新的byte数组中
  • indexOf(int ch):返回指定字符第一次出现的位置
  • indexOf(String str):返回指定字符串首次出现的位置
  • isEmpty():判断字符串是否空。
  • lastIndexOf(int ch):返回指定字符最后一次出现的位置
  • lastIndexOf(String str):返回指定字符串最后一次出现的位置
  • length():返回字符串的长度
  • replace(char oldChar, char newChar):通过使用返回一个新的字符串 newChar 所有出现在这个字符串中的替换字符串 oldChar 得到的
  • replaceAll(String regex, String replacement):使用给定的 replacement 替换所有匹配给定的正则表达式子字符串
  • split(String regex):字符串按给定正则表达式的匹配拆分
  • startsWith(String prefix):测试字符串是否从指定的前缀开始
  • substring(int beginIndex):从指定位置返回一个新的字符串 beginIndex 开始的子字符串
  • substring(int beginIndex, int endIndex):从指定的字符串返回一个新字符串。 beginIndex 直到索引开始 endIndex - 1 字符串在哪里
  • toLowerCase():将字符串转换为小写字母
  • toUpperCase():将字符串转换为大写字母
  • trim():返回字符串副本,忽略前导空白和尾部空白
测试用例
public class StringTest {    public static void main(String[] args) {        // 创建字符串        String str1 = "hello world";        String str2 = new String("hello world");        // 获取字符串的长度        int len = str1.length();        System.out.println(len);        // 字符串连接        String str3 = str1 + " " + str2;        String str4 = str1.concat(str2);        System.out.println(str3);        System.out.println(str4);        // 字符串分割        String str5 = "hello,world,java";        String[] arr = str5.split(",");        for (String s : arr) {            System.out.println(s);        }        // 字符串查找        String str6 = "hello world";        int index = str6.indexOf("o");        System.out.println(index);        // 字符串替换        String str7 = "hello world";        String newStr = str7.replace("world", "java");        System.out.println(newStr);        // 加密和解密字符串        String str8 = "password";        String encryptStr = encrypt(str8, 5);        System.out.println(encryptStr);        String decryptStr = decrypt(encryptStr, 5);        System.out.println(decryptStr);        // 字符串倒序输出        String str9 = "hello world";        String reversedStr = reverse(str9);        System.out.println(reversedStr);    }    public static String encrypt(String str, int key) {        char[] chars = str.toCharArray();        for (int i = 0; i < chars.length; i++) {            chars[i] = (char) (chars[i] + key);        }        return new String(chars);    }    public static String decrypt(String str, int key) {        char[] chars = str.toCharArray();        for (int i = 0; i < chars.length; i++) {            chars[i] = (char) (chars[i] - key);        }        return new String(chars);    }    public static String reverse(String str) {        char[] chars = str.toCharArray();        int left = 0;        int right = chars.length - 1;        while (left < right) {            char temp = chars[left];            chars[left] = chars[right];            chars[right] = temp;            left++;            right--;        }        return new String(chars);    }}
总结

本文介绍了Java字符串的定义、创建和内容操作,包括如何创建字符串、如何获得字符串的长度、如何连接和分割字符串、如何搜索和更换字符串等。同时,通过介绍应用场景案例和常用方法,帮助读者更全面、更深入地了解字符串的使用。

在使用字符串时,应注意其不可变性以及创建新字符串可能带来的性能和内存成本。在实际开发中,应根据具体情况选择合适的字符串处理方法。