Java中字符串的相关知识与常用方法的实现

      从概念上讲,Java字符串就是Unicode字符序列。Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,很自然的叫做String,每个双引号括起来的字符串都是String类的一个实例。

例如:

      String e="";

      String greeting="Hello";

一、下面通过代码展示Java中对于字符串操作的常用方法的实现:

      String  name="大拉崩坝般地背的普多";
      String temp="大中华";
      //截取固定参数下标位置以后的字符串
      System.out.println(name.substring(4));//般地背的普多
      //charAt():返回指定参数位置的值
      System.out.println(name.charAt(3));//呗
      //compare()方法按照字典顺序实现两个值或变量的比较,结果返回一个int类型的值。
      System.out.println(name.compareTo("temp"));//22707
      //equal()判断两个变量或值在数值方面是否相等,一般变量放在括号里面以防止发生位置的错误。
      System.out.println("大拉崩坝般地背的普多".equals(name));//true
      //equalsIgnoreCase():如果两个字符串相等(忽略大小写)返回true
      System.out.println("大拉崩坝般地背的普多".equalsIgnoreCase(name));//true
      //indexOf():实现返回第一个子串参数的开始位置,按索引从头开始
      System.out.println(name.indexOf("地"));//5
      //indexOf(string,int):实现返回第一个子串参数的开始位置,按索引参数位置开始
	System.out.println(name.indexOf("地", 4));//5
	//查找固定位置的代码点,如果没有找到,返回-1
        System.out.println(name.indexOf(3));//-1
	//返回字符串的长度
	System.out.println(name.length());//10
	//判断字符串是否以参数开始
	System.out.println(name.startsWith("大"));//true
	//判断字符串是否以参数结束
        System.out.println(name.endsWith("多"));//true
      String text="  zzzAAzzzA  a asas";
      //实现字符串中子串的替换
      System.out.println(text.replace("A", "S"));//  zzzSSzzzS  a asas
	  //清空字符串开头和结尾的空格
      System.out.println(text.trim());
      /*
       * 创建一个空的字符串构建器,并向其中添加相应的字符串。
       * 采用字符串连接的方式效率很低,而且会造成内存空间的浪费
       * */
	  StringBuilder sb =new StringBuilder();
	  sb.append("zz");
	  sb.append(2);
	  sb.append("dasdas");
	  sb.append("3243");
	  System.out.println(sb.toString());
	  sb.setCharAt(1, 'a');
      System.out.println(sb);
	  //在指定参数位置插入字串
	  System.out.println(sb.insert(5, "你好"));
	  //格式化输出,在Java编程中最常用于对时间的输出。
	  System.out.printf("%tA",new Date());
	  String str=String.format("%tA",new Date());
	  System.out.println(str);

二、Java中的空串与Null串

空串""是长度为0的字符串,声明空串的同时,在内存中开辟空间用于存放该字符串。Null串并没有开辟相应的空间。可以使用以下方法判断字符串是否为空:

public boolean isNullOrEmpty(String str) {
			
	if(str != null && str.length() != 0) {//顺序不允许颠倒,防止产生预期之外的错误!
		return false;
	}else if( str != null && str.length() == 0 ){
		return true;
	}else {
				
		return true;
	}

三、检测字符串是否相等

      在实际情况下,在Java虚拟机中只有字符串常量是共享的,而+或substring等操作产生的结果是不共享的。因此,千万不要使用==运算符测试字符串的相等性,以免在程序中出现糟糕的错误。

      各种字符串存放在存储池中,字符串变量存放在存储池中的相应位置,如果要复制一个字符串变量,原始字符串与复制的字符串共享相同的字符。==运算符在比较两个字符串相等性时,是比较两个字符串的存储地址是否相同,而equal()方法是比较两个字符串的值是否相等。



猜你喜欢

转载自blog.csdn.net/ibliplus/article/details/80961101