一、String类一般字符串

  • 声明字符串

>>String str

  • 创建字符串

>>String(char a[])方法用于将一个字符数组创建为String对象

>>String(char a[],int offset,int length)方法用于提取字符数组a中的一部分创建一个字符串对象,参数offset表示开始截取字符串的位置,length表示截取字符串的长度

>>String(char a[] value)方法可用于分配一个新的String对象,使其表示字符数组参数中所有对象连接的结果

  • 连接字符串

>>使用“+”运算符可以实现连接多个字符串的功能,也可以连接多个运算符并产生一个String对象

>>使用“+”运算符也可同其他基本数据类型进行连接,将其他数据类型转换为字符串

  • 获取字符串信息

>>使用String类的length()方法可获取声明的字符串对象的长度

  • 字符串查找

>>indexOf(String s)方法用于返回参数字符串s在指定字符串中首次出现的索引位置。当执行该方法时会从字符串开始位置搜索s的位置,如果没有检索到字符串s,该方法的返回值是-1

>>lastIndexOf(String str)方法用于返回指定字符串最后一次出现的索引位置,调用过程与indexOf()相同

  • 获取指定索引位置的字符

>>charAt(int index)方法可将指定索引位置的字符返回

  • 获取子字符串

>>substring(int beginIndex)方法用于获取从指定索引位置开始截取到该字符串结尾的子串

>>substring(int beginIndex,int endIndex)方法用于获取从指定位置开始截取至某一索引位置结束的子串

  • 去除空格

>>trim()方法返回字符串的副本,忽略前导空格和尾部空格

  • 字符串替换

>>replace(char oldChar,char newChar)方法可将指定的字符或字符串替换成新的字符或字符串,如果没有目标字符串,则返回原字符串

  • 判断字符串的开始与结尾

>>startsWith(String prefix)方法与endsWith(String suffix)方法用于判断字符串是否以指定的内容开始或结束,返回值都为boolean类型

  • 判断字符串是否相等

>>“==”用于比较两个字符串的地址是否相同,即使内容长度完全一致,两个字符串的地址也可能不同

>>equals(String otherstr)方法用于比较两个字符串的内容和长度,完全相同时返回true

>>equalsIgnoreCase(String otherstr)方法用于比较两个忽略大小写的字符串的内容和长度,完全相同时返回true

  • 按字典顺序比较两个字符串

>>compareTo(String otherstr)方法会按照字典顺序比较两个字符串。从两个字符串的第一位开始比较,如果两个字符串第一位的字符相同,则继续向后比较,直至出现不同的字符为止。若比较到最后一位都相同(即equals(object)方法返回值为true),则结果为0;若不同,该String对象位于参数字符串之前,则比较结果为一个负整数,反之则为一个正整数

  • 字母大小转换

>>toLowerCase()方法用于将字符串转换为小写

>>toUpperCase()方法用于将字符串转换为大写

  • 字符串分割

>>split(String sign)方法可以使字符串按指定的分割字符或字符串对内容进行分割,并将分割后的结果存放在字符串数组中

>>split(String sign,int limit)方法作用与上相同,但可以限定拆分次数

二、日期和时间字符串格式化

  • 日期格式化
常用的日期格式化转换符
转换符 说明 示例
%te 一个月中的某一天(1~31) 2
%tb 指定语言环境的月份简称 Feb(英文)、二月(中文)
%tB 指定语言环境的月份全程 February(英文)、二月(中文)
%tA 指定语言环境的星期几全称 Monday(英文)、星期一(中文)
%ta 指定语言环境的星期几简称 Mon(英文)、星期一(中文)
%tc 包括全部日期和时间信息 星期二 三月 25 13:37:22 CST 2008
%tY 4位年份 2008
%tj 一年中的第几天(001~366) 085
%tm 月份 03
%td 一个月中的第几天(01~31) 02
%ty 2位年份 08
  • 时间格式化
时间格式化转换符
转换符 说明 示例
%tH 2位数字的24时制的小时(00~23) 14
%tI 2位数字的12时制的小时(01~12) 05
%tk 2位数字的24时制的小时(0~23) 5
%tl 2位数字的12时制的小时(1~12) 10
%tM 2位数字的分钟(00~59) 05
%tS 2位数字的秒数(00~60) 12
%tL 3位数字的毫秒数(000~999) 920
%tN 9位数字的微妙数(000000000~999999999) 062000000
%tp 指定语言环境的上午或下午标记 下午(中文)、pm(英文)
%tz 相对于GMT RFC 82 格式的数字时区偏移量 +0800
%tZ 时区缩写形式的字符串 CST
%ts 1970-01-01 00:00:00 至现在经过的秒数 1206426646
%tQ 1970-01-01 00:00:00 至现在经过的毫秒数 1206412131231
  • 格式化常见的日期时间组合
常见的日期和时间组合的格式
转换符 说明 示例
%tF “年-月-日”格式(4位年份) 2008-03-25
%tD “月/日/年”格式(2位年份) 03/25/08
%tc 全部日期和时间信息 星期二 三月 25 15:20:00 CST 2008
%tr “时:分:秒 PM(AM)”格式(12时制) 03:22:06 下午
%tT “时:分:秒”格式(24时制) 15:23:50
%tR “时:分”格式(24时制) 15:25

三、常规类型格式化

常规转换符
转换符 说明 示例
%b、%B 结果被格式化为布尔类型 true
%h、%H 结果被格式化为散步码 A05A5198
%s、%S 结果被格式化为字符串类型 "abcd"
%c、%C 结果被格式化为字符类型 'a'
%d 结果被格式化为十进制整数 40
%o 结果被格式化为八进制整数 11
%x、%X 结果被格式化为十六进制整数 4b1
%e 结果被格式化为用计算机科学计数法表示的十进制数 1.700000e+01
%a 结果被格式化为带有效位数和指数的十六进制浮点值 0X1.C000000000001P4
%n 结果为特于与平台的行分隔符  
%% 结果为字面值% %

四、正则表达式

>>正则表达式通常被用于判断语句是否满足某一格式。正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符统称为正则表达式的元字符

正则表达式中的元字符
元字符 正则表达式中的写法 意义
. . 代表任意一个字符
\d \\d 代表0~9的任何一个数字
\D \\D 代表任何一个非数字字符
\s \\s 代表空白字符,如'\t'、'\n'
\S \\S 代表非空白字符
\w \\w 代表可用作标识符的字符,但不包括“$”
\W \\W 代表不可用作标识符的字符
\p{Lower} \\p{Lower} 代表小写字母a~z
\p{Upper} \\p{Upper} 代表大写字母A~Z
\p{ASCII} \\p{ASCII} ASCII字符
\P{Alpha} \\P{Alpha} 字母字符
\p{Digit} \\p{Digit} 十进制数字,即0~9
\p{Alnum} \\p{Alnum} 数字或字母字符
\p{Punct} \\p{Punct} 标点符号:!"#$%&'()*+,-;:<=>?@[\]^_`{|}~
\p{Graph} \\p{Graph} 可见字符:[\p{Alnum}\p{Punct}]
\p{Print} \\p{Print} 可打印字符:[\p{Graph}\x20]
\p{Blank} \\p{Blank} 空格或制表符:[\t]
\p{Cntrl} \\p{Cntrl} 控制字符:[\x00-\x1F\x7F]

>>限定修饰符用于限定正则表达式中元字符出现的次数

限定修饰符
限定修饰符 意义 示例
? 0次或1次 A?
* 0次或多次 A*
+ 1次或多次 A+
{n} 正好出现n次 A{2}
{n,} 至少出现n次 A{3,}
{n,m} 出现n~m次 A{2,6}

>>使用matches(String regex)方法来进行正则表达式匹配

五、StringBuilder类

>String类创建的对象,其长度是固定的,内容不能被改变和编译,虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的String实例,在内存中创建新的字符串对象。为解决这个问题,系统引入了可变的字符序列StringBuilder类,大大提高了频繁增加字符串的效率

>>append(content)方法用于向字符串生成器中追加内容,可实现接受任何类型的数据

>>insert(int offset arg)方法用于向字符串生成器指定位置插入数据内容

>>delete(int start,int end)方法用于移除指定位置开始到某一位置结束的字符串

Java学习笔记 02 String类、StringBuilder类、字符串格式化和正则表达式的更多相关文章

  1. 【C#学习笔记】string.Format对C#字符串格式化

    文章转自:CSDN   http://blog.csdn.net/samsone/article/details/7556781 1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格 ...

  2. Java学习笔记(5)--- Number类和Math 类,String类的应用,Java数组入门

    1.Number 和 Math 类: 在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型(int,double,float这些)的情形. 这种由编译器特别支持的包装称为装箱,所以当内置数 ...

  3. 3.2常用类(java学习笔记)String与StringBuffer

    一.String String又称不可变字符序列. 我们看JDK源码中用于字符存储的数组有final修饰,final修饰变量就代表变量不能改变. 我们可以看API文档中对String的描述. Stri ...

  4. JavaSE 学习笔记02丨对象与类

    Chapter 4. 对象与类 4.1 面向对象程序设计概述 面向对象程序设计(简称OOP),是当今主流程序设计范型.面向对象的程序是由对象组成的,每个对象(来自于标准库或自定义的)包含对用户公开的特 ...

  5. 3.1常用类(java学习笔记)包装类及日期类

    一.包装类 java是一门面向对象的语言,秉承一切皆对象的思想. 可java中有一些基本数据类型并不是对象,有时可能需要将它们变为对象. 这时就需要用到我们的包装类了. 基本数据类型 包装类 int ...

  6. 疯狂java学习笔记之面向对象(一) - 定义类、方法、构造器

    Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. ja ...

  7. java学习笔记(三):类和对象

     创建对象 构造器 每一个类都有一个构造器. 如果我们不单独为一个类编写构造器那么 Java 的编译器将会给这个类建立一个默认的构造器. 每当一个新的对象被创建,至少一个构造器将会被调用. 构造器的一 ...

  8. 【8-20】java学习笔记02

    others 初始化块在构造器前执行: 静态初始化块和实例变量显示初始化执行顺序为各自定义的位置: final类不能派生子类,final方法不可覆盖,final变量不可重新赋值: 判定值相等,Stri ...

  9. Java开发笔记(三十五)字符串格式化

    前面介绍了字符串变量的四种赋值方式,对于简单的赋值来说完全够用了,即便是两个字符串拼接,也只需通过加号把两个目标串连起来即可.但对于复杂的赋值来说就麻烦了,假设现在需要拼接一个很长的字符串,字符串内部 ...

随机推荐

  1. centos7.2下编译安装&&使用-git代码库

    centos7.2下编译安装git Git简介 Git是一个分布式版本控制系统 Git vs SVN SVN是典型的集中式版本控制起,版本库集中存放在服务器,当我们用自己的电脑干活儿的时候,需要先从中 ...

  2. iOS 10开发NSAssert(断言)的使用

    断言(NSAssert)的使用 字数1055 阅读3270 评论3 喜欢30 NSAssert()是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug ...

  3. iOS开发常见BUG和一些小技巧(ps:耐心看完,很实用)

    [385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Created by beyond on 15/6/6. // Copyright ...

  4. CSS overflow 属性

     值 描述 visible 默认值.内容不会被修剪,会呈现在元素框之外. hidden 内容会被修剪,并且其余内容是不可见的. scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容. ...

  5. [原创.数据可视化系列之六]使用openlyaers进行公网地图剪切

    进行地图开发的过程中,我一般使用天地图或者微软的地图作为地图,因为这两种地图的经纬度偏差最小,基本可以满足用户需求,比如: 不用说,都是全部地图,这也是最常用的一种方法. 但是用户说,我只看大连的地图 ...

  6. linux下服务端实现公网数据转发

    之前在腾讯上使用了一个免费的公网服务器,只有7天,linux系统. 其实有这样的想法,是因为有个研二的师弟问我怎么样才能让连个局域网的电脑通信. 我跟他说了两种方法,一种是找个公网服务器来转发数据,另 ...

  7. postgres 批量更新内容

    在程序中遇到这样的需求, 数据库表格式如下 需要把批量更新status, 如name = fox 时, status = 1, name = boa 时,status = 2 .... 类似的 pos ...

  8. 最近自己封装了个JS脚本,用来创建和操作Table

    基于JQuery封装的Table操作脚本 /** 依赖JQuery **/ (function () { var Table = window.Table = function (rowCount, ...

  9. 自定义UISearchBar

    先上系统默认的UISearchBar,然后用KVO修改 UISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:_topView.boun ...

  10. protobuf初体验

    概念介绍 Protocol buffers 是google公司的与语言无关.与平台无关的.可扩张的为序列化话结构数据,就像xml一样,办事更加的小巧.快速.简单.Protocol buffers 目前 ...