package com.javaBase.string;
import java.util.Locale;
/**
* 〈一句话功能简述〉;
* 〈String类中常用的方法整理〉
*
* @author
* @see [相关类/方法](可选)
* @since [产品/模块版本] (可选)
*/
public class CommonStringMethod {
public static void main(String[] args) {
// testLength();
// testChartAt();
// testToCharyArray();
// testIndexOf();
// testToUpperCaseAndToLowerCase();
// testSplit();
// testTrim();
// testSubstring();
// testEqualsIgnoreCase();
// testContains();
// testStartsWithAndEndsWith();
testReplaceAll();
}
/**
* length() 返回此字符串的长度。长度等于字符串中 Unicode 代码单元的数量。
* 返回值为 int 类型。得到一个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度)
*/
public static void testLength() {
String str = "123456 \t \n";
System.out.println(str.length());
}
/**
* charAt(index);返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,
* 第二个位于索引 1 处,依此类推,这类似于数组索引。
*/
public static void testChartAt() {
String str = "123456";
System.out.println(str.charAt(0));
System.out.println(str.charAt(1));
}
/**
* toCharArray();将此字符串转换为一个新的字符数组。
*/
public static void testToCharyArray() {
String str = "123456";
char[] arr = str.toCharArray();
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i]);
}
/**
* indexOf(int ch);返回指定字符在此字符串中第一次出现处的索引
* indexOf(int ch, int fromIndex);返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索
* indexOf(String str);返回指定子字符串在此字符串中第一次出现处的索引
* indexOf(String str, int fromIndex);返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始
*/
public static void testIndexOf() {
String str = "123456";
System.out.print(str.indexOf('1'));
System.out.print(str.indexOf('1',1));
System.out.print(str.indexOf("1"));
System.out.print(str.indexOf("1",1));
}
/**
* toLowerCase();使用默认语言环境的规则将此 String 中的所有字符都转换为小写
* toLowerCase(Locale locale);使用给定 Locale 的规则将此 String 中的所有字符都转换为小写
* toUpperCase();使用默认语言环境的规则将此 String 中的所有字符都转换为大写
* toUpperCase(Locale locale);使用给定 Locale 的规则将此 String 中的所有字符都转换为大写
*/
public static void testToUpperCaseAndToLowerCase() {
String str = "123456";
System.out.println(str.toUpperCase()); //123456
String str2 = "奥术大师多";
System.out.println(str2.toUpperCase()); //奥术大师多
String str3 = "abcA";
System.out.println(str3.toUpperCase());
System.out.println(str3.toUpperCase(Locale.CANADA_FRENCH)); //了解下local类
System.out.println(str3.toLowerCase());
}
/**
* split();根据给定正则表达式的匹配拆分此字符串。
*/
public static void testSplit() {
String str = "123456";
String[] arr = str.split(",");
for (int i=0;i<arr.length;i++)
System.out.println(arr[i]);
}
/**
* equals(Object anObject);将此字符串与指定的对象比较。当且仅当该参数不为 null,
* 并且是与此对象表示相同字符序列的 String 对象时,结果才为 true
*/
public static void testEquals() {
String str = "123456";
System.out.println("123".equals(str));
}
/**
* trim();返回字符串的副本,忽略前导空白和尾部空白。
* replace(char oldChar, char newChar) ;返回一个新的字符串,它是通过用 newChar
* 替换此字符串中出现的所有 oldChar 得到的。
*/
public static void testTrim() {
String str = " 12 3456 ";
System.out.println(str.trim()); //12 3456
System.out.println(str.replace(" ","")); //123456
}
/**
* substring(int beginIndex);返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,
* 直到此字符串末尾。
* substring(int beginIndex,int endIndex);返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的
* beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。
*/
public static void testSubstring() {
String str = "123456";
System.out.println(str.substring(2));
System.out.println(str.substring(2,4)); //左闭右开
}
/**
* equalsIgnoreCase(String anotherString);将此 String 与另一个 String 比较,不考虑大小写
*/
public static void testEqualsIgnoreCase() {
String str = "abc";
System.out.println("AbC".equalsIgnoreCase(str));
}
/**
* contains(CharSequence s);当且仅当此字符串包含指定的 char 值序列时,返回 true。
*/
public static void testContains() {
String str = "abcdef123";
System.out.println(str.contains("f12"));
}
/**
* startsWith(String prefix);测试此字符串是否以指定的前缀开始。
* endsWith(String suffix) ;测试此字符串是否以指定的后缀结束。
*/
public static void testStartsWithAndEndsWith() {
String str = "abcdef123";
System.out.println(str.endsWith("123"));
System.out.println(str.startsWith("123"));
}
/**
* replaceAll(String regex, String replacement);使用给定的 replacement 替换此字符串
* 所有匹配给定的正则表达式的子字符串。
*/
public static void testReplaceAll() {
String str = "abcdef1231";
str = str.replaceAll("1","@");
System.out.println(str);
String str2 = "abcdef1231";
str2 = str2.replace("1","#");
System.out.println(str2);
//一样?
String str3 = "abcdef1231";
str3 = str3.replaceAll("\\d", "*"); //abcdef**** replaceAll()支持正则表达式
System.out.println(str3);
}
}