一、将 'abc123' 字符串反转。
import java.lang.*; class Reverse{ public static void main(String[] args) { String str = "abc123"; // StringBuffer String rs = reverse1(str); System.out.println(rs); //toCharArray String tca = reverse1(str); System.out.println(tca); //CharAt String ca = reverse1(str); System.out.println(ca); } // StringBuffer public static String reverse1(String str){ StringBuilder strb = new StringBuilder(str).reverse(); return strb.toString(); } // 利用 String 的 toCharArray 方法先将字符串转化为 char 类型数组,然后将各个字符进行重新拼接: public static String reverse2(String str) { char[] chars = str.toCharArray(); String reverse = ""; for (int i = chars.length - 1; i >= 0; i--) { reverse += chars[i]; } return reverse; } //利用 String 的 CharAt 方法取出字符串中的各个字符: public static String reverse3(String str) { String reverse = ""; int length = str.length(); for (int i = 0; i < length; i++) { reverse = str.charAt(i) + reverse; } return reverse; } }
二、String:
1、定义:
在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。它不属于常用类型,属于引用类型。String类对象创建后不能修改(赋值后将会生成新的对像来存放新的内容,原先的对象依旧在内存中,但是s不在指向它,那么这个对象就会成为垃圾内存,在某一个特定的时刻有Java虚拟机回收)。
2、StringBuffer 和 StringBuilder 类:
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
2、String常用方法:
java使用手册在线版:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
import java.lang.*; class StringTest{ public static void main(String[] args) { String str = "abc123"; /** int length(): 语法:字符串变量名.length(); 返回值为 int 类型。 得到一个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度) */ String rs = str.length(); System.out.println(rs); /**char charAt(值) 语法 :字符串名.charAt(值); 返回值为 char 类型。 从字符串中取出指定位置的字符 */ String ca = str.charAt(1); System.out.println(ca); /**char toCharArray(); 语法 :字符串名.toCharArray(); 返回值为 char 数组类型。 将字符串变成一个字符数组 */ char c[] = str.toCharArray(); for (int i = 0; i < c.length; i++){ System.out.println("转为数组输出:" + c[i]); } /**int indexOf("字符") 语法 :字符串名.indexOf("字符"); 字符串名.indexOf("字符",值); 查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1. in lastIndexOf("字符") 得到指定内容最后一次出现的下标 */ int a1 = str.indexOf("2");// 查找字符2的位置 int a2 = str.indexOf("1", 2);// 查找1的位置,从第3个开始查找 int a3 = str.lastIndexOf("a"); System.out.println("2的位置为:" + a1); System.out.println("1的位置为:" + a2); System.out.println("a最后出现的位置为:" + a3); /**toUpperCase(); toLowerCase(); 字符串大小写的转换 */ String str1="hello world"; System.out.println("将字符串转大写为:" + str1.toUpperCase()); System.out.println("将字符串转换成小写为:" + str1.toUpperCase().toLowerCase()); /** String[] split("字符") 根据给定的正则表达式的匹配来拆分此字符串。形成一个新的String数组。 */ String str2 = "boo:and:foo"; String[] arr1 = str2.split(":"); String[] arr2 = str2.split("o"); /** boolean equals(Object anObject) 语法 :字符串变量名.wquals(字符串变量名); 返回值为布尔类型。所以这里用 if 演示。比较两个字符串是否相等,返回布尔值 */ String str3 = "hello"; String str4="world"; if(str.equals(str1)){ System.out.println("这俩字符串值相等"); }else{ System.out.println("这俩字符串值不相等"); } /** trim();去掉字符串左右空格 replace(char oldChar,char newChar);新字符替换旧字符,也可以达到去空格的效果一种。 */ String str5 = " 挨点博客 "; System.out.println("去掉左右空格后:" + str.trim()); System.out.println("去掉左右空格后:" + str.replace(" ","")); //String substring(int beginIndex,int endIndex) 截取字符串 //boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值 //boolean contains(String) 判断一个字符串里面是否包含指定的内容,返回一个布尔值 //boolean startsWith(String) 测试此字符串是否以指定的前缀开始。返回一个布尔值 //boolean endsWith(String) 测试此字符串是否以指定的后缀结束。返回一个布尔值 //String replaceAll(String,String) 将某个内容全部替换成指定内容 //String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容 } }
本人的笔记都是为了让自己记住并且便于复习很多容易忘记的知识点,不做任何商用。期间可能借鉴了很多前辈的解释,有各个网站上的相关内容借鉴总结,也有书籍里的总结,所以并没有标注来源,如有雷同敬请谅解。