本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/225
package com.joshua317; import java.util.StringTokenizer; public class Main { public static void main(String[] args) { // stringCompare(); // searchLastString(); // System.out.println(removeCharAtt("joshua317", 3)); // stringReplace(); // stringReverse(); // searchString(); // stringSplit(); // stringTokenizerSplit(); // stringToUpperCase(); // stringConcatenate(); } /** * 1 字符串比较 * 使用字符串函数 compareTo (string),compareToIgnoreCase(String)及compareTo(object string) 来比较两个字符串, * 并返回字符串中第一个字母ASCII的差值 */ public static void stringCompare() { String str1 = "Hello World"; String str2 = "hello world"; Object str3 = str1; System.out.println(str1.compareTo(str2)); //忽略大小写 System.out.println(str1.compareToIgnoreCase(str2)); System.out.println(str1.compareTo(str3.toString())); } /** * 2 查找字符串最后一次出现的位置 * 使用字符串函数 lastIndexOf(String str),返回指定子字符串在此字符串中最右边出现处的索引。 */ public static void searchLastString() { String str = "Hello world ,Hello joshua317"; int lastIndex = str.lastIndexOf("joshua317"); if (lastIndex == - 1) { System.out.println("没有找到字符串 joshua317"); } else { System.out.println("joshua317字符串最后出现的位置: "+ lastIndex); } lastIndex = str.lastIndexOf("joshua318"); if (lastIndex == - 1) { System.out.println("没有找到字符串joshua318"); } else { System.out.println("joshua318字符串最后出现的位置: "+ lastIndex); } } /** * 3 删除字符串中的一个字符 * 使用字符串函数 substring() 函数来删除字符串中的一个字符 * @param str * @param pos 从0开始计数 * @return */ public static String removeCharAtt(String str, int pos) { return str.substring(0, pos) + str.substring(pos + 1); } /** * 4 字符串替换 * 使用字符串函数 replace(char oldChar, char newChar)方法来替换字符串中的字符; * replaceFirst(String regex, String replacement),用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串; * replaceAll(String regex, String replacement),用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串 */ public static void stringReplace() { String str="Hello joshua317"; System.out.println( str.replace('H','W' )); System.out.println( str.replaceFirst("He", "Wa")); System.out.println( str.replaceAll("He", "Ha")); } /** * 5 字符串反转 * 使用StringBuffer类的反转函数 reverse() 将字符串反转 */ public static void stringReverse() { String string = "joshua317"; String reverse = new StringBuffer(string).reverse().toString(); System.out.println("字符串反转前:" + string); System.out.println("字符串反转后:" + reverse); } public static void searchString() { String str = "Hello joshua317"; int intIndex = str.indexOf("joshua317"); if(intIndex == - 1){ System.out.println("没有找到字符串joshua317"); }else{ System.out.println("joshua317字符串位置 " + intIndex); } } /** * 6 字符串分割 * 使用split(string) 方法通过指定分隔符将字符串分割为数组 */ public static void stringSplit() { String str1 = "www-joshua317-com"; String[] temp; // 指定分割字符 String delimeter = "-"; // 分割字符串 temp = str1.split(delimeter); // 普通 for 循环 for(int i =0; i < temp.length ; i++){ System.out.println(temp[i]); } System.out.println("------for each循环输出的方法-----"); String str2 = "www.joshua317.com"; String[] temp1; // 指定分割字符, . 号需要转义 String delimeter1 = "\\."; // 分割字符串 temp1 = str2.split(delimeter1); for(String x : temp1){ System.out.println(x); } } /** * 7 使用StringTokenizer对字符串分隔 * 使用 StringTokennizer 设置不同分隔符来分隔字符串,默认的分隔符是:空格、制表符(\t)、换行符(\n)、回车符(\r)。 * 注意:StringTokennizer会以给定分割字符串的每个字符进行分割,而split(string)是以整个字符串进行切割 */ public static void stringTokenizerSplit() { String str = "Hello joshua317, how are you"; StringTokenizer st1 = new StringTokenizer(str); System.out.println("=========StringTokenizer默认情况============"); while (st1.hasMoreElements()) { System.out.println(st1.nextElement()); } StringTokenizer st2 = new StringTokenizer(str, "oh"); System.out.println("=========StringTokenizer指定字符串分割============"); while (st2.hasMoreElements()) { System.out.println(st2.nextElement()); } StringTokenizer st3 = new StringTokenizer(str, "oh", true); System.out.println("=========StringTokenizer,返回分隔符============"); while (st3.hasMoreElements()) { System.out.println(st3.nextElement()); } } /** * 8 字符串小写转大写 * 使用 String类的toUpperCase()方法将字符串从小写转为大写 */ public static void stringToUpperCase() { String str = "joshua317"; String strUpper = str.toUpperCase(); System.out.println("原始字符串: " + str); System.out.println("转换为大写: " + strUpper); } /** * 9 字符串连接 * 通过 "+"操作符和StringBuffer.append()方法来连接字符串,并且对比下俩者性能 */ public static void stringConcatenate() { long startTime = System.currentTimeMillis(); for(int i=0; i<5000; i++){ String result = "This is" + "testing the" + "difference"+ "between" + "String"+ "and"+ "StringBuffer"; } long endTime = System.currentTimeMillis(); System.out.println("字符串连接" + " - 使用 + 操作符 : " + (endTime - startTime)+ " ms"); long startTime1 = System.currentTimeMillis(); for(int i=0; i<5000; i++){ StringBuffer result = new StringBuffer(); result.append("This is"); result.append("testing the"); result.append("difference"); result.append("between"); result.append("String"); result.append("and"); result.append("StringBuffer"); } long endTime1 = System.currentTimeMillis(); System.out.println("字符串连接" + " - 使用 StringBuffer : " + (endTime1 - startTime1)+ " ms"); } }
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/225