`

String 对象学习笔记

阅读更多

String类:public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence

是一个final类,意思就是最终的不可变的类。不可以有其他类来继承
一.String类创建对象:
1.字面量形式:
String str = “abc”;一个字符串对象
2.用new关键字来创建
String str = new String(“abc”);有两个字符串对象:一个是str,二是“abc”;推荐用字面量的形式来定义。
二.字符串的比较
String str1 = “abc”;
String str2 = new String(“abc”);
String str 3= “abc”;
System.out.println(str1==str2); false;
System.out.println(str1==str3); true
System.out.println(str1.equals(str2));  true
System.out.println(str1.equals(str3));  true

第一个比较为两个不同字符串对象,所以是false;
第二个比较,因为两种方式都是字面量的形式,会把申明的字符放在常量池中,在str3被创建的时候发现在常量池中已经存在了所以就不会再创建,str3指向的还是str1的字符串。所以就会相等.
第三种比较为equals比较,因为String类重写了Object的equals方法。equals比较的是内容是否相同,因为两个字符串都是”abc”所以都为true.
第四种同上。
三.String和StringBuffer
1.当创建String对象之后,字符串就不可以改变,如果需要改变它的指,就会重新创建新的字符串对象。所以当改变字符串对象会消耗很多资源。
String str=”abc”;
Str = str+”efg”;  这种方式会重新创建一个对象指向“abcefg”

2.StringBuffer类
StringBuffer()
          构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
StringBuffer(CharSequence seq)
          public java.lang.StringBuilder(CharSequence seq) 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。
StringBuffer(int capacity)
          构造一个不带字符,但具有指定初始容量的字符串缓冲区。
StringBuffer(String str)
          构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
有四个构造方法。重用的创建对象如下:
StringBuffer sb1 = new StringBuffer(); //构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
StringBuffer sb3= new StringBuffer(20);  //构造一个具有20个字符串的缓冲区
StringBuffer sb4 = new StringBuffer(“abc”); //构造一个字符串缓冲区,并初始化制定的字符串内容

Stringbuffer特性:它与String最大的特点是可以通过一系列方法来在字符串后面来添加新的字符串。而不会去另外创建新的对象。如下:
StringBuffer sb = new StringBuffer();
Sb.append(“abc”);
自定义去除两端空格方法
作为java程序员对于String的操作必须非常之熟悉

String 常用方法。

1. charAt(int index)
返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引。
参数:index指定的位置
如:”abcdefg”.charAt(3);
返回:d

2. compareTo(String anotherString)
如果参数字符串等于此字符串,则返回 0 值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0 的值;如果按字典顺序此字符串大于字符串参数,则返回一个大于 0 的值。

参数:要比较的字符串:
如:”abcdef”.compareTo(“abcdef”);
返回:0
3. equals(Object anObject)
将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。
参数:与此 String 进行比较的对象。
如:”abc”.equals(“abc”);
返回:true
4. substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
如:"unhappy".substring(2)
返回: happy

实例:自定义反转类型
基本思路:


代码如下:
package com.itheima.stringdemo;

/**
 * 自定义去除字符串两端空格
 * @author Administrator
 *
 */
public class StringTrim {

	public static void main(String[] args) {
		String str= "    abc  df    ";
		System.out.println(str.substring(4,11)+"------------");
		System.out.println("("+str+")");
		str = myTrim(str);
		System.out.println("("+str+")");
	}
	/**
	 * 去除字符串两端字符串
	 * @param str
	 * @return
	 */
	public static String myTrim(String str){
		int start=0;
		int end = str.length()-1;
			while(start<=end&&str.charAt(start)==' '){
				start++;
			}
			while(end>=start&&str.charAt(end)==' '){
				end--;
			}
			return str.substring(start,end+1);		//包括头不包括尾部
	}
}

  • 大小: 15.2 KB
分享到:
评论

相关推荐

    Ruby中的String对象学习笔记

    1、String对象定义 String对象的定义可以使用””和”,对于单纯的字符串,推荐使用”进行定义,效率比””高,””与”的区别在于,”内的字符串定义后就是最终形态,即使如\n换行符,也会原样输出,而””更像是一...

    DOJO 学习笔记 dojo

    一、 Dojo学习笔记(1. 模块与包) 1 二、 Dojo学习笔记(2. djConfig解说) 4 三、 Dojo学习笔记(3. Dojo的基础对象和方法) 6 四、 Dojo学习笔记(4. dojo.string & dojo.lang) 9 五、 Dojo学习笔记(5. dojo.lang.array ...

    cyc学习笔记.pdf

    2021秋招学习笔记总结,包含Java基础、Java并发、数据库、redis等常用后端技术等内容。数据类型 注:包装类型中一般设有缓冲池,比如Integer、String。 1、Integer缓存池范围-128~127都是同一个地址,在缓存池范围...

    js内置对象 学习笔记

    ● String对象:处理所有的字符串操作 ● Math对象:处理所有的数学运算 ● Date对象:处理日期和时间的存储、转化和表达 ● Array对象:提供一个数组的模型、存储大量有序的数据 ● Event对象:提供JavaSc

    js学习笔记大全

    * 字符串操作函数、日期操作函数、数组操作函数等,直接增加到 String、Date、Array 类里面,便于直接使用 */ /** * 获取元素,或者在DOM加载完成时执行某函数 * @param arg 此参数为字符串时,认为是 c$....

    Javascript Object 对象学习笔记

     可选的参数,声明了要转换成Number对象、Boolean对象或String对象的原始值(即数字、布尔值或字符串)。JavaScript 1.1之前的版本和ECMAScript Vl不支持该对象。 返回值  如果没有给构造函数传递value参数,那么它...

    《良葛格Java JDK 5.0学习笔记》.rar

    包含java特性、java学习方法、网络资源汇总、jdk下载和安装、path与CLASSPATH的设置、java基本语法、关于对象的认识、数组、字符串(String类))、Ant简介、JUnit简介。 作者:林信良(网络化名良葛格) 学历:台湾大学...

    java学习笔记 初学者必读

    7.6.4. String 类 7-23 7.7. 抽象类 7-24 7.8. 接口 (模板方法模式) 7-25 7.9. Object 类 7-27 7.10. 封装类 7-28 7.11. 内部类 7-29 7.11.1. 内部类的分类 7-29 7.11.2. 成员内部类 7-29 7.11.3. 局部内部类 7-30 ...

    Redis全套学习笔记

    Redis全套学习笔记,分享的是整理的《Redis 全套学习笔记.pdf》,图文并茂,特别详细,基本上涵盖了 Redis 所有知识点。redis是一个高性能的key-value数据库,它是完全开源免费的,而且redis是一个NOSQL类型数据库,...

    javascript学习笔记.docx

    6) typeof函数的返回值:数字——number,字符串——string,布尔值——Boolean,对象、数组、null——object,函数名——function或undefined(未定义时)。主要用来区别区别对象和原始类型。要区分对象的具体类型...

    C++中的vector容器对象学习笔记

    和 string 对象一样,标准库将负责管理与存储元素相关的内存。 我们把 vector 称为容器,是因为它可以包含其他对象 。 一个容器中的所有对象都必须是同一种类型的 。 vector对象的定义和初始化 同样的,使用前,导入...

    net学习笔记及其他代码应用

    答:string str = null 是不给他分配内存空间,而string str = \"\" 给它分配长度为空字符串的内存空间。 25.请详述在dotnet中类(class)与结构(struct)的异同? 答:Class可以被实例化,属于引用类型,是分配在内存的...

    Java学习笔记(必看经典)

    JAVA的面向对象编程--------课堂笔记 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 所有的事物都有两个方面: 有什么(属性):用来描述对象。 能够做...

    dojo精品中文教程(包一)

    Dojo学习笔记--Dojo的基础对象和方法 Dojo学习笔记--FisheyeList鱼眼效果 Dojo学习笔记--TabContainer Dojo学习笔记--ValidationTextbox Dojo学习笔记--dijit.Dialog Dojo学习笔记--dijit.Menu Dojo学习笔记--...

    dojo精品中文教程(包二)

    Dojo学习笔记--Dojo的基础对象和方法 Dojo学习笔记--FisheyeList鱼眼效果 Dojo学习笔记--TabContainer Dojo学习笔记--ValidationTextbox Dojo学习笔记--dijit.Dialog Dojo学习笔记--dijit.Menu Dojo学习笔记--...

    dojo精品中文教程(包三)

    Dojo学习笔记--Dojo的基础对象和方法 Dojo学习笔记--FisheyeList鱼眼效果 Dojo学习笔记--TabContainer Dojo学习笔记--ValidationTextbox Dojo学习笔记--dijit.Dialog Dojo学习笔记--dijit.Menu Dojo学习笔记--...

    dojo精品中文教程(全)

    Dojo学习笔记--Dojo的基础对象和方法 Dojo学习笔记--FisheyeList鱼眼效果 Dojo学习笔记--TabContainer Dojo学习笔记--ValidationTextbox Dojo学习笔记--dijit.Dialog Dojo学习笔记--dijit.Menu Dojo学习笔记--...

    记录所有有关java的学习笔记.rar

    JAVA是一种面向对象的程序设计语言,面向对象就是在计算机设计程序过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 1.1 面向对象 面向对象编程的本质就是:以类的方式...

    c#学习笔记.txt

    c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] 51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct ...

    Spring.NET学习笔记-实现一个简易的IoC框架

    通过这一点就可以告诉我们制作IoC容器需要写一个获取XML文件内容的方法和申明一个Dictionary&lt;string, object&gt;来存放IoC容器中的对象,还需要写一个能从Dictionary&lt;string, object&gt;中获取对象的方法。 全程手把手都...

Global site tag (gtag.js) - Google Analytics