笔记中涉及到 21条 ,共 22个 常用常见方法,还有第九条上的一个问题:
我使用 GB 2312
编码,而JVM用 UTF-8
编码。为什么重新编码后仍输出中文乱码?
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
public class StringMethods {
public static void main(String[] args) throws UnsupportedEncodingException {
String s = "number";//用于测试的字符串对象
String str = "u";//用于替换的字符
int count = 1;//只是用来计数的防止找不到运行结果
/* 1 */
System.out.println(count ++);
//char //把指定下标的元素转变为char
System.out.println(s.charAt(0));
System.out.println();
/* 2 */
System.out.println(count ++);
//boolean //比较两个字符串是否相等
System.out.println(s.equals("number"));
System.out.println(s.equals("Number"));
System.out.println();
/* 3 */
System.out.println(count ++);
//int //比较两个字符串是否相等并显示大小(引用 - 参数)
System.out.println(s.compareTo("nUmber"));
System.out.println();
/* 4 */
System.out.println(count ++);
//boolean //判断指定字符串是否包含某个字符串
System.out.println(s.contains("u"));
System.out.println(s.contains("f"));
System.out.println();
/* 5 */
System.out.println(count ++);
//boolean //判断指定字符串是否以某个字符串开始
System.out.println(s.startsWith("n"));
System.out.println(s.startsWith("f"));
System.out.println();
/* 6 */
System.out.println(count ++);
//boolean //判断指定字符串是否以某个字符串结尾
System.out.println(s.endsWith("r"));
System.out.println(s.endsWith("s"));
System.out.println();
/* 7 */
System.out.println(count ++);
//boolean //忽略字符串大小写比较两个字符串是否相同
System.out.println(s.equalsIgnoreCase("NUmbER"));
System.out.println();
/* 8 */
System.out.println(count ++);
//byte[] //将字符串中的每个字符翻译成ASCII码的十进制数字并生成byte类型的数组
byte[] b = s.getBytes();
for(int j = 0; j < b.length; j++) {
System.out.print(b[j]);
System.out.print('\t');
}
System.out.println();
//char[] //将字符串中的每个字符单独分解并按顺序组成一个char类型的数组
char[] c = s.toCharArray();
for(int j = 0; j < c.length; j++) {
System.out.print(c[j]);
System.out.print('\t');
}
System.out.println();
System.out.println();
/* 9 */
System.out.println(count ++);
//int //查找某个字符串在指定字符串中第一次出现时的下标(-1表示没有,建议配合三元运算符使用)
//提问:我使用GB 2312编码,而JVM用UTF-8编码。为什么重新编码后仍输出中文乱码?
String whenTrue = "第一次出现时的下标是";
String whenFalse = "字符串中没有该元素";
System.out.println(s.indexOf(str) != -1 ? URLDecoder.decode(whenTrue, "UTF-8") + s.indexOf(str) : URLDecoder.decode(whenFalse, "UTF-8"));
System.out.println();
/* 10 */
System.out.println(count ++);
//boolean //判断字符串长度是否为0
System.out.println(s.isEmpty());
System.out.println();
/* 11 */
System.out.println(count ++);
//int //输出字符串的长度
System.out.println(s.length());
System.out.println();
/* 12 */
System.out.println(count ++);
//String //把指定字符串中的某个字符替换成另一个字符
System.out.println(s.replace('f', 'F'));
System.out.println();
/* 13 */
System.out.println(count ++);
//String //把指定字符串中的某个字符串或整个字符串替换成另一个字符串
System.out.println(s.replace("k", str));//String implements CharSequence(字符列表)
System.out.println();
/* 14 */
System.out.println(count ++);
//int //判断指定字符串中某个字符串最后一次出现时的下标
System.out.println(s.lastIndexOf('e'));
System.out.println();
/* 15 */
System.out.println(count ++);
//String[] //去掉指定的字符串并以它为间隔拆分字符串
String[] s1 = s.split(str);
for(int j = 0; j < s1.length; j++) {
System.out.print(s1[j]);
System.out.print('\t');
}
System.out.println();
/* 16 */
System.out.println(count ++);
//String //以某个下标为开始在指定字符串中截取下标及其后面的字符串[beginIndex, s.length)
System.out.println(s.substring(2));
System.out.println();
/* 17 */
System.out.println(count ++);
//String //以某个下标为开始,以另一个下标为结束在指定字符串中截取字符串[beginIndex, endIndex)
System.out.println(s.substring(1, 3));
System.out.println();
/* 18 */
System.out.println(count ++);
//String //将字符串中的大写全转换为小写
System.out.println("Number".toLowerCase());
System.out.println();
/* 19 */
System.out.println(count ++);
//String //将字符串中的小写全转换为大写
System.out.println("Number".toUpperCase());
System.out.println();
/* 20 */
System.out.println(count ++);
//String //去掉字符串前后的空白
System.out.println(" nu mber ".trim());
System.out.println();
/* 21 */
System.out.println(count ++);
//static
//String //将非字符串转换为字符串
System.out.println(String.valueOf(1234));//1234
System.out.println(1234);//1234
//println和print自带valueOf
//print括号内不能为空
}
}