java中String感觉不如C++方便,最近在看JAVA核心技术,说是因为在JAVA文档中将String对象成为不可变字符串。如果修改只能让它引用另一个字符串,这样的好处是编译器可以让字符串共享。
String的一些方法:
char charAt(int index),返回给定范围的代码单元。 int compareTo(String other) 按照字典顺序,如果字符串位于other之前返回负数,如果位于other之后返回正数,如果相等返回0。 boolean endsWith(String suffix) 如果字符串以suffix结尾,返回true。 boolean equals(Object other) 如果字符串与other相等,返回true。 boolean equalsIgnoreCase(String other) 如果字符串与other相等,返回true。 int indexOf(String str) int indexOf(String str, int fromIndex) int indexOf(int cp) int indexof(int cp, int fromIndex) 返回与字符串str或者代码点cp匹配的第一个子串的开始位置。这个位置从索引0或者fromIndex开始计算。如果原始串中不存在str,返回-1。 同样还有int lastIndexOf(String str) int length() 返回字符串的长度 String replace(CharSequence oldString, CharSequence newString) 返回用newString代替oldString后的字符串。 boolean startsWith(String prefix) 如果字符串以preffix字符串开始,返回true。 String substring(int beginIndex),String substring(int beginIndex , int endIndex) 字符串截取 String toLowerCase(),String toUpperCase(),大小写转换 String trim()删除头尾空格
StringBuilder:使用较短的字符串构建字符串,采用字符串连接的方式达到此目的效率比较低,每次连接字符串都会构建一个新的String对象,既耗时又浪费空间。所以需要使用StringBuilder类。
StringBuilder builder = new StringBuilder();
StringBuilder() 构造一个空的字符串构建器 int length() 返回构建器或缓冲器中的代码单元数量 StringBuilder append(String str) 追加一个字符串并返回this StringBuilder append(char c) 追加一个代码单元并fanhui this StringBuilder appendCodePoint(int cp) 追加一个代码点,并将其转换为一个或两个代码单元并返回this void setCharAt(int i, char c) 将第i个代码单元设置为c StringBuilder insert(int offset, String str) 在offset位置插入一个字符串并返回this StringBuilder insert(int offset, Char c) 在offset位置插入一个代码单元并返回this StringBuilder delete(int startIndex, int endIndex) 删除偏移量从startIndex到endIndex-1的代码单元并返回this String toString() 返回一个与构建起或者缓冲器内容相同的字符串