java学习笔记05--字符串 .

一、String类

由字符所组成的一串文字符号被称之为字符串。在java中字符串不仅仅是字符数组,而且是String类的一个实例,可以使用String类来构建。

字符串的每个字符是使用Unicode字符来构建。

Sring对象上的几个方法:

length()       取得字符串的长度

equals()      判断源字符串中的字符是否等于指定字符串中的字符

 toLowerCase()      转换字符串中的英文字符为小写

toUpperCase()       转换字符串中的英文字符为大写

字符串的本质是由字符数组所组成,所以使用String类声明字符串后,该字符串会具有数组索引的性质。

char  charAt(int  index)           返回指定索引处的字符

int    indexOf(int ch)                 返回指定字符第一个找到的索引位置

int    indexOf(String str)          返回指定字符串第一个找到的索引位置

int    lastIndexOf(int ch)           返回指定字符最后一个找到的索引位置

String   substring(int beginIndex)     取出指定索引处至字符串尾端的子字符串

String   substring(int beginIndex ,int  endIndex)     取出指定索引范围子字符串(包括beginIndex,不包括endIndex)

char[]  toCharArray()                 将字符串转换为字符数组

  1. public class T {
  2. public static void main(String[] args) {
  3. String str = "hello itmyhome";
  4. for(int i=0;i<str.length();i++){
  5. System.out.print(str.charAt(i));
  6. }
  7. System.out.println();
  8. System.out.println("第一个o索引位置 : "+str.indexOf("o"));
  9. System.out.println("最后一个o索引位置: "+str.lastIndexOf("o"));
  10. System.out.println("截取从第6个字符至尾:        "+str.substring(6));
  11. System.out.println("截取从第6个至第8个字符:"+str.substring(6, 8));
  12. char charStr[] = str.toCharArray();
  13. for (int i = 0; i < charStr.length; i++) {
  14. System.out.print(charStr[i]);
  15. }
  16. }
  17. }

执行结果:

  1. hello itmyhome
  2. 第一个o索引位置 : 4
  3. 最后一个o索引位置: 11
  4. 截取从第6个字符至尾:        itmyhome
  5. 截取从第6个至第8个字符:it
  6. hello itmyhome

在构建字符串对象时,除了直接在=后使用""来指定字符串常数之外,也可以使用字符数组来构建:

  1. char name[] = {'i','t','m','y','h','o','m','e'};
  2. String s = new String(name);

二、不可变字符串

在java中使用字符串有一个非常重要的规则必须记得,一个字符串对象一旦被配置,它的内容就是固定不可变的。

在java中,使用“=”将一个字符串对象指定给一个引用名称,其意义为改变该名称所引用的对象,原来被引用的字符串对象若没有其他名称来引用它,就会在适当的时候被java的“垃圾回收”机制回收。

在java执行时会维护一个String池(Pool),对于一些可以共享的字符串对象,会现在String池中查找是否存在相同
的String内容(字符相同),如果有就直接返回,而不是直接创造一个新的String对象,以减少内存的耗用。如果在程序中使用下面的方式来声明,则
实际上是指向同一个字符串对象:

  1. String str1 = "itmyhome";
  2. String str2 = "itmyhome";
  3. System.out.println(str1==str2);

当直接在程序中使用“”来包括一个字符串时,该字符串就会在String池中。

StringBuilder类

参考http://blog.csdn.net/itmyhome/article/details/7232340

分离字符串

可以使用String的split()进行分离字符串

需注意问题:“.”,“|”,“?”都是转义字符,必须加“\\”

  1. String s1[] = str.split("\\.");
  2. String s2[] = str.split("\\|");
  3. String s3[] = str.split("\\?");

如果在一个字符串中有多个分隔符,可以用“|”作为连字符。

  1. String str = "welcome?to!itmyhome bolg";
  2. String s[] = str.split("\\?|!");
  3. for (int i = 0; i < s.length; i++) {
  4. System.out.println(s[i]);
  5. }

以?和!作为分隔符。

java学习笔记05--字符串 .的更多相关文章

  1. 【原】Java学习笔记022 - 字符串

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 字符串 // 定义 ...

  2. Java学习笔记 05 数据包装类

    一.包装类 综述 >>java.lang包中的Integer类.Long类和Short类,分别将基本数据类型int.long和short封装成一个类.这些类都是Number的子类. Int ...

  3. 【原】Java学习笔记023 - 字符串缓冲区_正则表达式

    package cn.temptation; import java.util.Arrays; public class Sample01 { public static void main(Stri ...

  4. Java学习笔记之字符串常用方法

    一.String关键字一些常用方法 1.构造方法: public String(); 空构造 public String(byte[]  bytes);将字节数组转成字符串 public String ...

  5. 【java学习笔记】字符串和Date的转换

    String dateVal = "1992-12-06 18:34:23"; SimpleDateFormat sdf = new SimpleDateFormat(" ...

  6. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  7. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  8. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  9. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  10. 20145330第十周《Java学习笔记》

    20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...

随机推荐

  1. UVA 1524 - Hot or Cold?(数学)

    UVA 1524 - Hot or Cold? 题目链接 题意:给一个一元n次方程,带入x表示时间,f(x)表示温度,如今要求[s, e]的平均温度 思路:平均温度就是 总温度/ (e - s),画出 ...

  2. 普通图片转ascii码字符图

    效果图 基本思路 把图片每个像素点的信息拿出来,最重要的是拿到rgb的值 把每个像素点由rgb转成灰度图像,即0-255 给0-255分级,把每个等级的像素点转换成ascii码,完成 实现 第一步:获 ...

  3. Hadoop: the definitive guide 第三版 拾遗 第十三章 之HBase起步

    指南上这一章的开篇即提出:HBase是一个分布式的.面向列的开源数据库.如果需要实时的随机读/写超大规模数据集,HBase无疑是一个好的选择. 简介 HBase 是一个高可靠性.高性能.面向列.可伸缩 ...

  4. 【Unity技巧】使用单例模式Singleton

    这几天想把在实习里碰到的一些好的技巧写在这里,也算是对实习的一个总结.好啦,今天要讲的是在Unity里应用一种非常有名的设计模式——单例模式. 开场白 单例模式的简单介绍请看前面的链接,当然网上还有很 ...

  5. 改动导航栏上返回button上的字,比如把back改动为返回

    改动导航栏上返回button上的字,比如把back改动为返回 注意:这个须要在跳转之前到视图控制器中写,而不是在跳转之后到控制器中写 UIBarButtonItem *backIetm = [[UIB ...

  6. 非确定有限状态自动机的构建(一)——NFA的定义和实现

    保留版权,转载需注明出处(http://blog.csdn.net/panjunbiao). 非确定有限状态自动机(Nondeterministic Finite Automata,NFA)由以下元素 ...

  7. 对 sql server 数据库的备份进行加密

    原文:对 sql server 数据库的备份进行加密 嗯,最近在研究数据库备份相关的东西,考虑到应该为数据库备份加个密,就准备从网上搜索一下看看有什么好办法,没想到还挺乱... 首先,我从网上搜到的, ...

  8. JAVA 实现发牌的 改进

    java是一门面向对象的语言,我们在解决这个问题的时候先找对象.我认为面想对象 “就是把复杂的问题变简单,简单的问题程序化” .如果我们  创建一盒牌--->洗牌--->选地主牌---&g ...

  9. win2k/xp查看当前进程

    win2k/xp查看当前进程 tasklist tasklist | find "关键字" 可以对结果进行过滤 关闭当前某个进程 taskkill /pid 程序的PID号码 wi ...

  10. centOS设为文本启动方式

    centOS图形界面须要点用系统大量的内存和CPU资源,对于server而言,高效率是最重要的,因此将Centos 默认启动改为文本方式. 在终端中输入: vi /etc/inittab 有段说明文字 ...