`

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换行符,也会原样输出,而””更像是一...

    JAVA中String与StringBuffer的区别 自己的学习笔记总结

    这意味着如果尝试改变一个 `String` 对象的值,将会创建一个新的 `String` 对象。 ```java String str = "hello"; str += " world"; // 实际上是创建了一个新的 String 对象 ``` 2. **性能**:由于 `String` ...

    J2ME学习笔记 J2ME学习笔记 J2ME学习笔记

    根据提供的标题、描述、标签及部分内容,我们可以提炼出关于J2ME的学习笔记中的关键知识点,主要聚焦于Java语言的基础概念,特别是与初始化和字符串相关的部分。 ### 初始化 #### 概述 - **成员变量初始化**:所有...

    Java学习笔记(必看经典).pdf

    Java是一种广泛使用的面向对象编程语言,其核心设计原则之一就是"万物皆对象"。面向对象编程(Object-Oriented Programming, OOP)是相对于面向过程编程的一种编程范式,它强调将数据和操作数据的函数封装在一起,...

    Hibernate学习笔记整理

    Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...

    java基础学习笔记.doc

    以上是Java基础学习笔记中涉及的关键知识点,涵盖了输入输出、对象创建、随机数生成、数组和集合的使用以及字符串操作。这些是学习Java编程时的基础内容,深入理解和熟练运用这些知识将有助于进一步学习更复杂的Java...

    Java学习笔记 经典必看

    ### Java学习笔记经典知识点解析 #### 一、面向对象编程基础 **面向对象**是一种重要的编程范式,它改变了传统的面向过程的编程思路,强调通过对象来组织代码,提高代码的复用性和维护性。 **面向对象的核心概念*...

    瑜琅java学习笔记

    ### 瑜琅Java学习笔记概览 瑜琅的Java学习笔记涵盖了Java的基础概念与核心特性,从起源到高级特性均有涉及。以下是对该学习笔记各部分的深入解析: #### 1. Java起源 ##### 1.1 发展背景 - Java的诞生源于Sun ...

    个人Javascript学习笔记 精华版

    本资源为个人Javascript学习笔记的精华版,涵盖了Javascript的基础知识、事件处理、对象和系统函数、浏览器对象等方面的内容。下面是对每个知识点的详细说明: 1. 什么是JavaScript? JavaScript是一种脚本语言,...

    Java JDK 7学习笔记 PDF

    这个PDF学习笔记是开发者深入理解JDK 7特性和功能的重要参考资料。以下是对Java JDK 7的一些核心知识点的详细阐述: 1. **泛型改进**:在JDK 7中,泛型的使用更加灵活,引入了类型推断(Type Inference)特性,通过...

    cyc学习笔记.pdf

    举个例子,如果执行`String s = new String("abc")`,这将创建两个对象:一个在方法区的常量池中,包含"abc"的字符串,另一个在堆上,是一个新的String对象,其`value`字段引用了常量池中的"abc"。 理解这些核心...

    Excel VBA学习笔记

    这篇“Excel VBA学习笔记”涵盖了多个关键知识点,下面将对这些内容进行详细讲解。 一、VBA基础 1. **环境介绍**:VBA开发环境包括VBE(Visual Basic Editor)编辑器,它提供了代码编辑器、项目浏览器、对象浏览器...

    Java学习笔记+程序员生涯

    ### Java学习笔记+程序员生涯 #### 一、面向对象编程基础 **面向对象与面向过程对比** 面向对象编程(Object-Oriented Programming, OOP)是现代软件开发中的一种核心编程范式,它强调以对象作为基本单位进行设计...

    Python学习笔记-王纯业

    【Python学习笔记-王纯业】是一份专为Python初学者设计的教程,由王纯业编撰。这个教程深入浅出地介绍了Python编程的基础知识,帮助初学者快速上手。下面将详细阐述该教程中可能包含的重要知识点,以及Python入门者...

    JAVA学习笔记

    【JAVA学习笔记】是一份专为Java初学者设计的学习资源,包含了从基础知识到进阶概念的全面讲解。PDF版的格式使得学习者可以方便地在各种设备上阅读和打印,随时随地提升自己的Java技能。 这份笔记可能涵盖了以下几...

    c++学习笔记(个人学习时做的笔记)

    【C++学习笔记概述】 C++是一门强大的编程语言,其在C语言的基础上进行了扩展,引入了许多现代化的特性。这份笔记主要涵盖了C++的基础知识,包括C++11和C++17的新特性,旨在帮助初学者理解C++的核心概念。 ### C++...

    C#学习笔记.pdf

    根据提供的文件信息,我们可以提取并展开以下几个核心知识点: ...通过以上知识点的梳理,可以发现这份C#学习笔记涵盖了从基本的类型转换到复杂的图像处理、打印功能等多个方面,是一份较为全面的学习材料。

    java学习笔记

    ### Java学习笔记——面向对象与面向过程对比及面向对象特性详解 #### 面向对象基本概念 在Java学习过程中,面向对象是一个重要的概念。它不仅是一种编程思想,也是理解和解决问题的有效方式。面向对象的基本单位...

    Python学习笔记.pdf

    Python学习笔记中的知识点涵盖了Python编程语言的基础概念和结构。由于文件内容较为复杂且存在OCR识别错误,我们将尝试将内容按可理解的结构和顺序组织并解释这些关键概念。 1. Python基础数据类型:笔记中提及了...

Global site tag (gtag.js) - Google Analytics