java 字符串处理
Posted 李帆1998
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 字符串处理相关的知识,希望对你有一定的参考价值。
字符串类型
String
String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。StringBuffer
线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
StringBuilder
一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。
转化
String s = "string"; StringBuffer str = new StringBuffer(s); String s = str.toString();
字符串与字符数组
字符串转字符数组
String s = "string"; char[] chars = s.toCharArray();
字符数组转字符串
char[] chars = {'a','b'}; String s = new String(chars); s = String.valueOf(chars);
字符串与基本数据类型
基本数据类型转String(String类)
static String valueOf(int i)
返回 boolean 参数的字符串表示形式。
static String valueOf(char[] data)
返回 char 数组参数的字符串表示形式。
static String valueOf(char[] data, int offset, int count)
返回 char 数组参数的特定子数组的字符串表示形式。
String类型转基本数据类型
String s = "1234";
int i = new Integer(s).intValue;
i = Integer.valueOf(s);
i = Integer.parseInt(s);
字符串替换
StringBuilder/StringBuffer/String replace(int start, int end, String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。
String replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex, String replacement)
使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
字符串截取
char charAt(int index)
返回此序列中指定索引处的 char 值。
String substring(int start)
返回一个新的 String,它包含此字符序列当前所包含字符的子序列。
String substring(int start, int end)
返回一个新的 String,它包含此序列当前所包含字符的子序列。
String String.valueOf(char[] data, int offset, int count)
返回 char 数组参数的特定子数组的字符串表示形式。
start - 起始索引(包含)。
end - 结束索引(不包含)。
字符串查找
int indexOf(String str)
返回指定子字符串在此字符串中第一次出现处的索引。
int indexOf(String str, int fromIndex)
返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
int lastIndexOf(String str)
返回指定子字符串在此字符串中最右边出现处的索引。
int lastIndexOf(String str, int fromIndex)
返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
字符串去空格
String trim()
返回字符串的副本,忽略前导空白和尾部空白。
注意:只有String有此方法
字符串反转
StringBuffer/StringBuilder reverse()
将此字符序列用其反转形式取代。
注意: String类无此方法
字符串分割
String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。
String[] split(String regex, int limit)
根据匹配给定的正则表达式来拆分此字符串。
字符串转日期
long与date
long dateTime = new Date.getTime(); Date date = new Data(dateTime);
String转date
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); Date date = sdf.parse("2008-07-10 19:20:00"); System.out.println("data.toString()"+date); 输出: data.toString()Thu Jul 10 19:20:00 CST 2008
date转String
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); Date date = new Date(); System.out.println("data.toString()"+date); String str = sdf.format(date); System.out.println("data-format:"+str); 输出: data.toString()Mon Feb 25 00:35:07 CST 2019 data-format:2019-02-25 00:35:07
获取当前时间详细
Calendar c = Calendar.getInstance();//可以对每个时间域单独修改 int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int date1 = c.get(Calendar.DATE); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); int second = c.get(Calendar.SECOND); System.out.println(year + "/" + month + "/" + date1 + " " +hour + ":" +minute + ":" + second); 输出: 2019/1/25 0:41:51
以上是关于java 字符串处理的主要内容,如果未能解决你的问题,请参考以下文章
java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段
通过 Java 正则表达式提取 semver 版本字符串的片段
java.util.MissingResourceException: Can't find bundle for base name init, locale zh_CN问题的处理(代码片段