一.文档注释
1.用法:
类 方法 常量
2.作用:
文档注释可以被javadoc翻译并生成为手册
文档注释是功能级注释,用来说明整体功能
二.String有关
1>String是不可变对象
1.1>使用final修饰,不能被继承
1.2>字符串一旦创建,对象无法改变,但字符串引用可以重新赋值
1.3> JVM对字符串有一个优化,字符串常量池
字符串常量池中会缓存所有使用字面量形式创建的字符串
对象,一旦发现再次使用已有的字面量创建字符串时会直接重用已
创建对象.避免内存中出现大量内存一样的字符串对象,
减小内存开销
String str1=”aaa”;
String str2=”aaa”;
System.out.println(str1==str2);
2>indexOf
2.1>int indexOf(String str) 返回值 方法名(参数)
2.2>作用:
查找给定字符串在当前字符串中的位置,若当前字符串
不含有给定内容则返回值为-1
public class String_indexOf {
public static void main(String[] args) {
// 0123456789012345
String str="thinking in JAVA";
System.out.println(str.indexOf("in"));//2
//从指定的位置开始查找
System.out.println(str.indexOf("in",str.indexOf("in")+1));//5
//从后往前找(检索最后一次出现的位置)
System.out.println(str.lastIndexOf("in"));//9
}
}
3>substring
3.1>String substring(int start,int end)
3.2>作用:
截取当前字符串的部分内容
(需要注意 java api中有一个特点,通常使用两个数字
表示一个范围时都是"含头不含尾"的.)
public class String_substring {
public static void main(String[] args) {
// 0123456789012
String str="www.baidu.com";
//截取指定区间[前闭后开)
System.out.println(str.substring(4,9));
//从指定位置开始截取
System.out.println(str.substring(4));
System.out.println(getHost(str));
System.out.println(getHost("www.baidu.com.cn"));
String str2="someapp/manager/emplist.action";
System.out.println(str2.substring(str2.lastIndexOf("/")+1));
}
/**
* 返回给定地址的域名
* @param url
* @return
*/
public static String getHost(String url){
String str=".";
return url.substring(url.indexOf(str)+1,url.indexOf(str,url.indexOf(str)+1));
}
}
4>trim
4.1>void String trim()
4.2>作用:
去除字符串两边的空白字符
5>chatAt
5.1>char charAt(int index)
5.2>返回指定下标处对应的字符
6>startsWith和endsWith
6.1>boolean startsWith(String str)
boolean endsWith(String str)
6.2>判断当前字符串是否以给定的字符串开始或结尾
public class String_startsWith_endsWith {
public static void main(String[] args) {
String str="thinking in JAVA";
boolean starts=str.startsWith("th");
System.out.println("starts:"+starts);//true
boolean ends=str.endsWith("a");
System.out.println("ends:"+ends);//false
}
}
7>toUpperCase和toLowerCase
7.1>String toUpperCase()
String toLowerCase()
7.2>将当前字符串中的英文部分转换为全大写和全小写
String str="只对英文有效javaJAVA";
String upper=str.toUpperCase();
System.out.println(upper);
8>valueOf:String 提供一系列重载的valueOf方法(静态方法)
8.1>String String.valueOf(Object o)
8.2>将java其他类型转换为字符串
PS:int length()
三.StringBuilder
1>作用:专门用来修改字符串内容的类
2>意义:StringBuilder内部维护一个可变的字符数组,所有操作
均在该数组中完成.速度快,内存消耗小
3>常用方法:
3.1>append(String str) 追加字符串
3.2>insert(int dstOffset,String s) 插入字符串
3.3>delete(int start,int end) 删除字符串
3.4>replace(int start,int end,String str) 替换字符串
3.5>reverse() 字符串反转
4.StringBuffer:
和StringBuilder功能相同,但性能不同
StringBuffer是线程安全的,同步处理的,性能稍慢
StringBuilder是非线程安全的,并发处理的,性能稍快
public class StringBuilderDemo {
public static void main(String[] args) {
String str="Hello";
StringBuilder builder=new StringBuilder(str);
builder.append(",world");
str=builder.toString();
System.out.println(str);
/*
* 01234567890
* Hello,world
*/
builder.replace(6,11,"JAVA");
System.out.println(builder.toString());
/*
* 0123456789
* Hello,JAVA
*/
builder.delete(0,6);
System.out.println(builder.toString());
builder.insert(0, "what is ");
System.out.println(builder.toString());
builder.reverse();
System.out.println(builder.toString());
if(isHuiWen("radar"))System.out.println("yes");
chineseCharacters();
}
public static boolean isHuiWen(String str){
StringBuilder builder=new StringBuilder(str);
builder.reverse();
if(str.equals(builder.toString())){
return true;
}
return false;
}
public static void chineseCharacters(){
StringBuilder builder=new StringBuilder();
for (char c = '\u4e00', i = 1; c <= '\u9fa5'; c++, i++){
builder.append(c);
if(i%50==0){
builder.append("\n");
}
}
System.out.println(builder.length());
// System.out.println(builder.length()+"\n"+builder.toString());
}
}