Java常用API(一)——Java的亲儿子String类

版权声明:木心 https://blog.csdn.net/sinat_41642067/article/details/84702458

    String是不变对象,JVM对String有一个优化:常量池 当使用字面量形式创建字符串对象时,JVM会将其缓存在常量池中,当再次使用该字面量创建字符串对象时就重用对象,避免内存中堆积大量内容一样的字符串对象,减少内存开销。

    一个计算表达式参与运算的内容是确定值时,编译器会进行计算然后编译到.class文件中,避免JVM每次执行程序的时候再做运算。

     字符串为不变对象,一旦创建内容不可修改。若改变则创建新对象。

public class StringDemo {
	public static void main(String[] args) {
		String s1="1a";
		String s2="1a";
		String s3="1a";
		String s4="1"+"a";
		String s5="1";
		String s6=s5+"a";
		String s7=new String("1a");

		System.out.println(s1==s2);//true
		System.out.println(s1==s3);//true
		System.out.println(s1==s4);//true
		System.out.println(s1==s6);//false
		System.out.println(s1==s7);//false

		s1=s1+".";//创建一个新的对象
		System.out.println(s1);
		System.out.println(s2);
		System.out.println(s2==s1);//false
	}
}

 

int length( ):获取当前字符串长度,不论什么字符都是一个长度

int indexOf(String str):获取给定字符串在当前字符串中位置,没有返回-1

int indexOf(String str,int pos)

int lastIndexOf(String str)

char charAt(int index):获取给定位置字符

    这里有一个判断回文的案例

public class CharAt {
	public static void main(String[] args) {
		String string2="上海自来水来自海上";
		boolean check=true;
		for (int i = 0; i < string2.length()/2; i++) {
			if (string2.charAt(i)!=
			string2.charAt(string2.length()-1-i)) {
				System.out.println("不是回文");
				break;
			}
		}
			System.out.println("是回文");
	}
}

boolean startsWith(String str)

boolean endsWith(String str)

    判断字符串是否以给定的字符串开始或结尾的

String subString(int start,int end)

    截取指定范围内的字符串,区间左闭右开

trim( ):省去前面和后面的空白和缩进

String toUpperCase( )

String toLowerCase( )

    英文转换为全大写或小写(验证码中常用)

    字符串提供了一组重载的valueOf方法,可以将其他类型转换为字符串,但注意这是一组静态方法,通过类名.调用

    这里有一个实现给定地址截取域名的综合案例。

public class Test {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		String string=scanner.nextLine();
		System.out.println(getName(string));
	}
	/**
	 * 获取给定地址的域名
	 * @param string 给定的地址
	 * @return 域名
	 */
	public static String getName(String string) {
		int frontPoint=string.indexOf(".");
		int behindPoint=string.indexOf(".",frontPoint+1);
		return string.substring(frontPoint+1, behindPoint);
	}
}

猜你喜欢

转载自blog.csdn.net/sinat_41642067/article/details/84702458