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(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字符串的定义、创建和内容操作,包括如何创建字符串、如何获得字符串的长度、如何连接和分割字符串、如何搜索和更换字符串等。同时,通过介绍应用场景案例和常用方法,帮助读者更全面、更深入地了解字符串的使用。
在使用字符串时,应注意其不可变性以及创建新字符串可能带来的性能和内存成本。在实际开发中,应根据具体情况选择合适的字符串处理方法。
