Java中的字符串(String)

一、基本概念:

  字符串是一系列字符串的序列。在Java语言中字符串是用一对对双引号“”,括起来的字符系列。例如“Hello”,“你好”。从数组的角度来说,字符串可以是看成是一个个字符组成的数组。

  程序中用到的字符串可以分成两大类:

  一种是创建之后不会再做修改和变动字符串变量;需要它经常做比较、搜索等操作,这种的字符串变量是String类对象来的

  另外一种是创建之后允许再做修改的字符串变量;需要经常添加、插入、修改等操作的字符串变量一般放在StringBuilder类的对象中。

二、字符串的创建

  格式一:

    String 变量名;

    变量名=new String("字符串");

    String str;//声明字符串引用变量str,此时str的值为null

    str = new String("HelloWorld");//在堆内存中分配空间,并将str指向字符串首地址

  格式二:

    String str = new String("HelloWorld");//在创建时并初始化;

  格式三:

    String str = "HelloWorld";

  ***字符串是引用型标量,所以其储存方式与数组的储存方式基本相同。两个字符串之间是可以使用“+”符号连接在一起的,一个数与一个字符串相加也是变成一个字符串。连起来后就会是系统新创建的一片空间。

四、字符串类String类的常用方法

  1、public int length();//返回字符串的长度

  2、public boolean equals(Object anObject);//将给定字符串与当前字符串相比较,若两字符相等就会返回true,否则返回false

  3、public String substring(int beginIndex);//返回字符串从beginIndex开始的字串

  4、public String substring(int beginIndex,int endIndex);//返回字符串从beginIndex开始,endInedx结束的字串

  5、public char charAt(int index);//返回index指定位置的字符

  6、public int indexOf(String str);//返回字符串中第一次出现的位置

  7、public int CompareTo(String anotherString);//若调用该方法的字符大于参数字符串,返回大于0的值;若相等则返回数0;若小于参数字符串,返回小于0的值

  8、public String replace(char oldChar, char newChar);//以newChar字符替换字符串中所有oldChar字符

  9、public String trim();//去掉字符串的首尾空格  

  10、public String toUpperCase();//将字符串的所有字符都转换成大写字符

  11、public String toLowerCae();//将字符串所有字符都转成小写字符

时间: 2024-08-05 05:08:56

Java中的字符串(String)的相关文章

java中的字符串String

一.String简介d 参考:https://www.cnblogs.com/zhangyinhua/p/7689974.html String类代表字符串. java.lang.String: Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例. 字符串String的值在创建后不能被更改 String源码 1 /** String的属性值 */ 2 private final char value[]; 3 4 /** The offset is the firs

Java中的字符串-String & StringBuilder

引言: 操作系统课程上学习的生产者消费者模型可以说是学习并发的最好例子.这里需要注意Java不支持进程,只支持多线程.本篇文章将以一个最简单的生产者消费者模型进行Java并发的讲解.学习了本篇博文你应该学会了一下几个内容 1. 多个线程如何正确并发对一个变量进行读和写 2. 生产者消费者模型的实现 Java并发: 上文说了Java中没有进程只有线程,所以Java的并发只涉及到线程.在Java里可以通过两种方法创建一个线程,第一种为继承Thread类,第二种为实现Runnable接口.两种方法个人

JAVA中,字符串STRING与STRINGBUILDER的效率差异

如果可变字符串操作较多的话,用STRINGBUILDER显然优势得多. public class HelloJava { public static void main(String[] args) { // TODO Auto-generated method stub String str = "a"; long starTime = System.currentTimeMillis(); for(int i = 0; i<10000;i++){ str = str + i;

Java中的字符串常量池

最近做到一个题目: 问题:String str = new String("abc"),"abc"在内存中是怎么分配的?    答案是:堆,字符串常量区. 题目考查的为Java中的字符串常量池和JVM运行时数据区的相关概念."abc"为字面量对象,其存储在堆内存中.而字符串常量池则存储的是字符串对象的一个引用. Java中的字符串常量池 Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid&qu

protobuf在java中的字符串化

最近由于项目需要,大致研究了一下protobuf的java使用.说实话,习惯了C++的protobuf,java用起来真别扭. 由于需要将protobuf序列化后,存入redis,而且redis没法直接存储非字符串的数据,所以我只能想办法将protobuf序列化成字符串. protobuf的java实现里,并没有直接序列化成String类型变量的方法,但是提供了toByteArray()方法,可以序列化成byte[]. 于是乎很容易想到可以这么做: byte[] raw_bytes = prot

java学习-关于字符串String

有必要总结记录一下java的学习,否则,永远只是记忆碎片化和always google(费时) 刚好,小伙伴给了一份自己做的review,在学习的过程中,update一下自己的见解和学习内容: 关于String: 1 package string_keywords; 2 /** 3 * 参考url: http://developer.51cto.com/art/201106/266454.htm 4 * 5 * 常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.cla

Java中如何将String转成Date

Java中如何将String转成Date 最近在开发Json数据反序列化为Java对象的时候发现spring mvc 和 Jackson 对Date类型对支持不是特别好,虽然在Java对象序列化为Json数据的过程中提供了便利的注解,但是反序列化却没有,于是就引出了下面的问题,我需要手工的将字符串转换为Date类型的数据,java.text.SimpleDateFormat 为我们提供了这种转换的基础设施.如下列出了的格式化模式的简单定义,如果 ‘M’ 大于等于3位, 月份会显示为字母,否则是数

[转]java中的字符串相关知识整理

字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果写过C/C++的应该就了解,在字符串的操作上会有许多操作的函数与类,用于简化代码的开发.一方面是因为字符串在代码中会频繁用到,另一方面是因为字符串的操作非常麻烦. 最初我知道String的特殊待遇就是在delphi中,因为String在delphi里是一个关键字存在,与其他的基本类型是不一样的.那时

Android学习笔记----Java中的字符串比较

用习惯了C#.C++,在做字符串比较时想当然地使用如下语句: 1 string str1 = "abcd", str2 = "abcd"; 2 if(str1==str2) 3 { 4 return true; 5 } 6 else 7 { 8 return false; 9 } 殊不知在Java中,两个String类型的变量,尽管字符相同,使用”==“进行比较,也会返回false. Java中进行字符串比较需采用String类型的equals方法: 1 Strin

JAVA中创建字符串的两种方式的区别

我们知道,通常在Java中创建一个字符串会有两种方式,通过双引号直接赋值和通过构造器来创建. String x = "abcd"; String y = new String("abcd"); 然而,这两种方式之间的区别是什么?分别应用于哪些情况,之前还不是很懂. 1.双引号的方式 String x = "abcd"; String y = "abcd"; System.out.println(x==y);//true Sys