java面试必备之String类

       String

一、基础知识

   在Java中将字符串作为对象来处理,有两种创建形式:String str=abc;String str=new String(abc). String是不可变对象。

二、常用API

int indexOf(int ch):用来检查给定的一个字符在当前字符串中第一次出现的下标位置。

String substring(int begin,int end):用来截取当前字符串的部分内容以获取这个子字符串。

String trim():将字符串两边的空白(空白有很多种,空格是其中之一)去除掉

char charAt(int index):用于给定一个下标位置,来获取该字符串中这个位置的字符。

boolean startsWith(String suffix):用来判断当前字符串是否是以给定的字符串开始的。这里要注意大小写是敏感的。

boolean endsWith(String suffix):用来判断当前字符串是否是以给定的字符串结尾的。

String toUpperCase():用来将当前字符串中的英文部分的字符全部变为大写后再将新的字符串返回

String toLowerCase():用来将当前字符串中的英文部分的字符全部变为小写后再将新的字符串返回

字符串提供了很多重载的valueOf()方法,可以将其他基本类型的值以字符串的形式描述。

三、StringBuilderStringBuffer

1.StringBuilder是可变字符串。StringBuilder的很多方法的返回值均为StringBuilder类型。

2.StringBuilder类的常用方法有:

append(String str):追加字符串;

insert (int dstOffsetString s):插入字符串;

delete(int startint end):删除字符串;

replace(int startint endString str): 替换字符串;

reverse():字符串反转。

    3.StringBuffer StringBuilder的区别

    StringBuffer是线程安全的,同步处理的,性能稍慢;

StringBuilder是非线程安全的,并发处理的,性能稍快。

   四、正则表达式

   正则表达式就是使用一系列预定义的特殊字符来描述一个字符串的格式规则,然后使用该格式规则匹配某个字符串是否符合格式要求。

1)相关表示

"."点儿,在正则表达式中表示任意一个字符。

\d:表示任意一个数字

\w:表示任意一个单词字符(只能是 数字,字母,下划线)

\s:表示任意一个空白字符(\t \r \n \f \x0B)

\D:表示任意一个非数字字符

\W:表示任意一个非单词字符

\S:表示任意一个非空白字符

"[]"用来描述单一字符,方括号内部可以定义这个字符的内容,也可以描述一个范围

"+":表示内容可以连续出现至少1次以上

"*":表示内容出现0-若干次

"?":表示内容出现0-1

{n}:表示内容必须出现n

{n,m}:表示内容出现n-m

{n,}:表示内容出现至少n

通过在正则表达式的开始添加"^"以及末尾添加"$"来表示一个整体。若不使用它们,那么正则表达式只匹配某个字符串的部分内容是否符合格式规则,但使用它们,则要求字符串必须从头到尾都满足该格式规则。

(2)相关API

matches()方法的参数要求我们传入一个用字符串描述的正则表达式,然后使用该正则表达式描述的字符串格式规则来匹配当前字符串,若满足那么该方法返回true。否则返回false

String[] split(String regex):参数要求传入一个用字符串描述的正则表达式,然后使用该正则表达式描述的字符串规则来匹配当前字符串,并按照满足的部分将字符串拆分。

String replaceAll(String regex,String replacement):参数要求传入一个用字符串描述的正则表达式和一个需要替换的字符串,然后使用该正则表达式描述的字符串规则来匹配当前字符串,并将满足的部分替换为需要替换的这个字符串。

四、日期时间相关

1Date

Java中的时间使用标准类库的Date类表示,是用距离一个固定时间点(19701100:00:00)的毫秒数(可正可负,long类型)表达一个特定的时间点。因为Date的设计具有"千年虫"以及"时区"的问题,所以Date中的大部分方法已经不建议使用了,它们都被java.util.Calendar类所取代。

void setTime(long time):该方法用于为一个Date对象设置其需要表示的时间,

long getTime():该方法用于获取一个Date对象所表示的时间点,该返回值为一个long

实际上DatetoString()方法返回的字符串虽然很清晰的描述了时间,但是对于非英语地区来讲不友好,可使用SimpleDateFormat来格式化。

2SimpleDateFormat

SimpleDateFormat 是一个用来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。简单的说,SimpleDateFormat就是根据一个特定的日期格式在字符串与Date之间相互转换。

String format(Date d):将Date格式化为String

Date parse(String s) :将String解析为Date

3、Calendar

1java.util.Calendar 类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。

2Calendar是抽象类,其具体子类针对不同国家的日历系统,其中应用最广泛的是GregorianCalendar(格里高里历,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统。

3Calendar是抽象类,其提供了一个工厂方法:Calendar getInstance()。该方法可以根据当前系统所在地区获取一个适当的Calendar的子类实现。

4Calendarvoid setTime(Date date),允许我们为Calendar设置Date对象所表示的时间。

CalendarDate getTime(),允许我们获取一个使用Date对象描述的Calendar所表示的时间。

 

<!--EndFragment-->

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

Java之泛型(Generic Type) - 2016-09-13 15:09:37

Java之泛型(Generic Type) 一、背景知识     在面向对象编程中有四个概念:抽象、封装、继承、多态         这四种编程思想在Java中的体现:         1、抽象:接口(Interface)、抽象类     2、封装:用权限关键字控制自身属性对外的访问/继承权限:public、protected、default、private     3、继承:一个类可以继承另一个类的属性或方法。     4、多态:有继承必然有多态。允许子类重写 (overwrite) 父类中的方法。  

Java集合 - 2016-09-13 14:09:09

Map ConcurrentHashMap HashMap LinkedHashMap Hashtable WeakHashMap   Set HashSet LinkedHashSet TreeSet   List ArrayList LinkedList
Java 程序的三种结构 一、 顺序结构     从上往下逐行执行,每句必走。 二、 分支结构     有条件的执行某语句,并非每句必走。 1)if 结构 :1 条路 if(boolean 表达式 ){   语句块 } 若语句块仅有一条语句,可以省略“ {} ”。 2)if...else 结构 :2 条路     3)if...else if 结构 : 多条路 4)switch...case 结构 : 多条路 在 JDK1.6 及其以前版本中 switch 语句中的表达式的值必须是整型和字符型,在 JDK

阴影文字 - 2016-09-12 14:09:37

最近写了一段阴影文字的代码 /*   dkplus专业搜集和编写实用电脑软件教程,搜集各种软件资源和计算机周边(java网络编程、seo网站优化、web开发,lnmp,java网络编程,毕业论文设计),独立制作视频和ppt和音频微信公众号,点击进入 dkplus官方博客http://dkplus.iteye.com 微信搜索dkplus关注公众号可获取海量计算机周边资源。   */    import  java.awt.*;   import  java.applet.*;   import  java

第二篇 - 2016-09-12 14:09:36

现在使用最多的编程语言是什么?? 当然是JAVA

java面试必备之类和对象 - 2016-09-12 14:09:37

               Java 类和对象( 都是重点,必须理清楚 ) 一、 类和对象    1. 什么是类 ? 什么是对象 ?   1) 现实世界是由很多对象组成的,基于对象抽出了类   2) 对象 : 真实存在的单个的个体,类 : 类型 / 类别,一类个体   3) 类中可以包含 :     3.1) 所有对象所共有的特征 / 属性 ( 静 )---- 变量     3.2) 所有对象所共有的行为 ( 动 )--------- 方法   4) 一个类可以创建多个对象     同一个类的多个对象,

我的私房IT图书馆 - 2016-09-12 14:09:08

         工作十年,家中珍藏了不少经典的IT图书,现整理成册,分享给大家,希望大家有所借鉴,有所帮助。   Java类 书名 简介 疯狂Java讲义(第3版) 案例驱动,引爆编程激情。再现李刚老师课堂氛围。注释详细,轻松上手。  Java从入门到精通(第2版)  零基础、入门级的讲解。超多、实用、专业的范例和项目。随时检测自己的学习成果。细致入微、贴心提示。  Java典型模块与项目实战大全  覆盖Java语言6大技术要点,详解Java语法的最新特性,精选25个典型模块和4个项目案例,实战Java

Spring架构揭秘-声明式事务 - 2016-09-12 14:09:39

1、声明式事务原理 2、Spring事务模块结构及解析   一、声明式事务原理      在日常的开发中经常会使用到事务,比如在新增纪录的方法里,通常会先开启事务,然后再提交事务,遇到异常就回滚事务,事务代码都是模版型的,写起来很烦,但是又不能不写。这正好符合AOP的应用范围,Spring天然的支持AOP,于是伟大的声明式事务就这么诞生了。通过XML或注解的方式配置事务,标明在哪个类,那个方法需要使用事务即可。 二、Spring事务模块结构及解析      Spring对事务管理做了高级抽象,分为3个部分

Maven 项目SuchNoMethod等报错 - 2016-09-12 14:09:16

对于maven项目经常会出现,项目引入一堆依赖,最后项目运行的时候出现 NoSuchMethod ClassNotFound NoClassDefFound 这些exception,这个时候就要怀疑是不是引包的姿势不对,导致了项目启动出现问题! Root Cause: 一般出现以上exception的根本原因是,a,b不同的依赖之间依赖了同一个依赖c的不同版本,在A版本中某个类还在,但是在B版本中对应的类已经被删除了,maven依赖的时候根据自身的规则依赖了B版本,导致了应用在调用a的方法时,出现了NoSu
1、鼠标右击我的电脑(计算机)-----------属性-----------高级系统设置-----------环境变量-----------新建     2、分别配置以下环境变量: 环境变量名     环境变量值 PATH              C:\Java\jdk1.6.0_30\bin CLASSPATH       .; JAVA_HOME( 供第三方插件用 )C:\Java\jdk1.6.0_30\ (注意:以上环境变量值的符号都是在英文输入法状态下,建议环境变量新建在Administra