最近工作中用到了大量有关字符串截取的知识,在此做出总结,希望需要的朋友带来帮助:
  可以复制粘贴代码直接在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. Vue.js学习笔记(4)

    分享一段将 json数组数据以  csv格式导出的代码: html: <button class="btn btn-danger" @click='exportData'&g ...

  2. Android图片缓存之Glide进阶

    前言: 前面学习了Glide的简单使用(Android图片缓存之初识Glide),今天来学习一下Glide稍微复杂一点的使用. 图片缓存相关博客地址: Android图片缓存之Bitmap详解 And ...

  3. jQuery.unique引发一个血案

    项目开发过程中,PM说系统只要在一个特定的浏览器中运行就好,但是在其他的浏览器中不能出现逻辑的错误,所以在开发过程中,前端和后台选择是Chrome浏览器,没有仔细测试Firefox和IE.但是昨天PM ...

  4. 在Linux中运行Nancy应用程序

    最近在研究如何将.NET应用程序移植到非Windows操作系统中运行,逐渐会写一些文章出来.目前还没有太深的研究,所以这些文章大多主要是记录我的一些实验. 这篇文章记录了我如何利用NancyFx编写一 ...

  5. golang开发环境配置及Beego框架安装

    配置环境:Windows7推荐IDE:LiteIDEGO下载地址:http://www.golangtc.com/downloadBeego开发文档地址:http://beego.me/docs/in ...

  6. ZOJ Problem Set - 1109 Language of FatMouse

    这道题目最让人头疼的就是该题的input怎么结束,因为它要求输入一个空行的时候则一串字符串输入结束,这就不得不让人绕个弯来解决这个问题. (注:本人习惯于使用C中的字符串操作,但是用到map要求使用s ...

  7. Cesium应用篇:3控件(4)Geocoder

    Geocoder是一个非常简单的控件,但也是非常常用且实用的控件,顾名思义,Geocoder就是地理编码的意思,而平常我们经常会查询一些地物,也就是常用的POI搜索,就是Geocoder的功劳. 首先 ...

  8. centos6搭建gitlab

    前言 原来的项目放在公网的gitlab上,处于安全考虑,在内网搭建一套,有图形界面,可以直接从外网git导入进来,使用了一下觉得挺方便,把安装流程记录下来,参考官网:https://gitlab.co ...

  9. EFCore执行Sql语句的方法:FromSql与ExecuteSqlCommand

    前言 在EFCore中执行Sql语句的方法为:FromSql与ExecuteSqlCommand:在EF6中的为SqlQuery与ExecuteSqlCommand,而FromSql和SqlQuery ...

  10. C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现之方法二:加入缓存机制

    在上一篇文章中我用递归方法实现了管理菜单,在上一节我也提到要考虑用缓存,也算是学习一下.Net Core的缓存机制. 关于.Net Core的缓存,官方有三种实现: 1.In Memory Cachi ...