最近工作中用到了大量有关字符串截取的知识,在此做出总结,希望需要的朋友带来帮助:
  可以复制粘贴代码直接在java中测试
1.将字符串中的指定字符":","-"删除:

public static void main(String[] args) {
String time="2015-12-06 19:04:08";
String formatedata=time.replaceAll(":", "");
String formatedata1=formatedata.replaceAll("-", "");
System.out.println(formatedata1);

//控制台输出:20151206 19040

2.截取字符串中指定的字符:

public static void main(String[] args) {
String time="2015-12-06 19:04:08";
//substring(3,time.indexOf("08")第一个参数3代表截取的开始位置(字符串从0开始),第二个参数是结束位置完全可以写为整数
String formatedata=time.substring(3,time.indexOf("08"));
System.out.println(formatedata);
}
//控制台输出:5-12-06 19:04:

3.验证字符串中是否含有某个字符:

public static void main(String[] args) {
String time="2015-12-06 19:04:08";
boolean is=time.contains("19");
System.out.println(is);
}
//控制台输出:true

4.查看字符串是否以某指定的字符串开头或结束:

public static void main(String[] args) {
String time="2015-12-06 19:04:08";
//字符串是否以"20"开头
boolean is=time.startsWith("20");
//字符串是否以"08"结束
boolean is1=time.endsWith("08");
System.out.println(is);
System.out.println(is1);
}
//控制台输出:true true

5.获取字符串的长度:

public static void main(String[] args) {
String time="2015-12-06 19:04:08";
int length=time.length();
System.out.println(length);
}
//控制台输出:19

6.截取一个字符:

public static void main(String[] args) {
String time="2015-12-06 19:04:08";
System.out.println(time.charAt(6));
}
//控制台输出:2

7.同一个字符开始和结束位置

public static void main(String[] args) {
String time = "2015-12-06 19:04:08";
int a = time.indexOf("0");
int b = time.lastIndexOf("0");
System.out.println("字符串0第一次出现的位置" + a + ",,,最后一次出现的位置" + b);
}
//控制台输出:字符串0第一次出现的位置1,,,最后一次出现的位置17

8.连接字符串

public static void main(String[] args) {
int a = 42;
StringBuffer sb = new StringBuffer();
String s = sb.append("a=").append(a).append("!").toString();
System.out.println(s);
}
//控制台输出:a=42!

9.在指定位置插入字符串

public static void main(String[] args) {
StringBuffer a=new StringBuffer("我是小明");
StringBuffer b=a.insert(2, "黄");
System.out.println(b);
}
//控制台输出:我是黄小明

10.删除指定字符:

public static void main(String[] args) {
StringBuffer a=new StringBuffer("abcdefghijklmn");
//删除,从下标为3的字符开始到下标为7的字符
StringBuffer b=a.delete(3, 7);
System.out.println(b);
}
//控制台输出:abchijklmn

11.字符串长度不够自动补0:

 public static String addZeroForNum(String str, int strLength) {
int strLen = str.length();
StringBuffer sb = null;
while (strLen < strLength) {
sb = new StringBuffer(); sb.append(str).append("0");//右(后)补0
str = sb.toString();
strLen = str.length();
}
return str;
}

目前总结就这些,希望给大家带来帮助。

另外我一直不太清楚String和StringBuffer的区别,大多数都用String,几乎没有用过StringBuffer,那什么时候该用String,什么时候该用StringBuffer呢?希望朋友们可   以指教,谢谢。

Java—字符串小结的更多相关文章

  1. Java基础知识回顾(一):字符串小结

    Java的基础知识回顾之字符串 一.引言 很多人喜欢在前面加入赘述,事实上去技术网站找相关的内容的一般都应当已经对相应知识有一定了解,因此我不再过多赘述字符串到底是什么东西,在官网中已经写得很明确了, ...

  2. 为什么Java字符串是不可变对象?

    转自 http://developer.51cto.com/art/201503/468905.htm 本文主要来介绍一下Java中的不可变对象,以及Java中String类的不可变性,那么为什么Ja ...

  3. Java 基础--小结

    Java  基础--小结 java基础 Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机( ...

  4. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  5. Java中文编码小结

    Java中文编码小结 1. 只有 字符到字节 或者 字节到字符 的转换才存在编码转码; 2. Java String 采用 UTF-16 编码方式存储所有字符.unicode体系采用唯一的码点表示唯一 ...

  6. (转)Java字符串

    转自:http://blog.sina.com.cn/s/blog_899678b90101brz0.html 创建字符串有两种方式:两种内存区域(字符串池,堆)1," " 引号创 ...

  7. Java字符串split函数的注意事项

    Java字符串的split方法可以分割字符串,但和其他语言不太一样,split方法的参数不是单个字符,而是正则表达式,如果输入了竖线(|)这样的字符作为分割字符串,会出现意想不到的结果, 如, Str ...

  8. 关于java字符串编译优化问题

    情景一:不好的字符串拼接习惯    起因是这样的:一个大牛在写了一篇关于java字符串优化问题的讲解,他提到:不要使用strObj+otherValue的方法将otherValue转换为字符串形式,因 ...

  9. Java字符串排列算法

    Java字符串排列算法 题目:现有ABCDE 5个球 构成的排列组合 可重复抽取 最多取到16个 共有多少种组合方式? 比如:取1个球可以构成的组合有 A B C D E 共5种,取2个球可以构成的组 ...

随机推荐

  1. Android okHttp网络请求之缓存控制Cache-Control

    前言: 前面的学习基本上已经可以完成开发需求了,但是在项目中有时会遇到对请求做个缓存,当没网络的时候优先加载本地缓存,基于这个需求我们来学习一直okHttp的Cache-Control. okHttp ...

  2. C#线程同步手动重置事件——ManualResetEvent

    和AutoResetEvent类的区别是,Manual一旦set后不会自动reset,会放行所有waitone的线程,而autoresetevent每一次set之后只会放行一个waitone的线程,然 ...

  3. objective-c 语法快速过(8)

    Block(oc 的数据类型,很常用,本质是c结构体) 类似内联函数,从源代码层看,有函数的结构,而在编译后,却不具备函数的性质.编译时,类似宏替换,使用函数体替换调用处的函数名 Block封装了一段 ...

  4. 使用PL/SQL工具比对表结构,同步表结构

    需求:Oracle数据库,B库和C库,某些表的表结构不一致,现在要求以C库为标准,同步更新B库表结构PL/SQL 连接到C库, Tools --> Compare User Objects .. ...

  5. PostgreSql+PostGIS和uDig的安装

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 总体来说,这两款开源软件均是很好安装的,一般按照提示一步一步 ...

  6. (2)从实际项目谈起,基于MEF的插件框架之总体设计

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.MEF框架简介 MEF的全称是Managed Extensibil ...

  7. Android之ListView的getItemViewType和getViewTypeCount

    PS:感觉这两个方法其实还是很容易理解的,也算是给我其他两个朋友写的吧,帮他们搞清楚这两个方法的用法和概念.同时还有一些小细节问题需要注意. 学习内容: 1.getItemViewType和getVi ...

  8. Xamarin.Android之Spinner的简单探讨

    一.前言 今天用了一下Spinner这个控件,主要是结合官网的例子来用的,不过官网的是把数据写在Strings.xml中的, 某种程度上,不是很符合我们需要的,比较多的应该都是从数据库读出来,绑定上去 ...

  9. WindowsCE project missing Microsoft.CompactFramework.CSharp.targets in Visual Studio 2008

    00x0 前言 之前在Windows 7系统中开发的WindowsCE项目,最近换成Windows 10系统,需要将项目进行修改,打开项目后提示如下错误: 无法读取项目文件"App.cspr ...

  10. C#利用反射+特性实现简单的实体映射数据库操作类

    附上源代码: using System; using System.Collections.Generic; using System.Data; using System.Linq; using S ...