append、replace、replaceAll、indexof、lastIndexOf、substring的用法
1.append
StringBuffer buf = new StringBuffer("Hard ");
String aString = "Waxworks";
buf.append(aString,3,4);
结果:"Hard w"
buf.append(aString,3,4);
结果为:"Hard work"
append s_content.append("</description>").append("\n");
2.replace和replaceAll
replace fileurl = fileurl.replace("../", "");//去掉../
1>replace的参数是char和CharSequence,既可以支持字符替换,也可以支持字符串替换。
2>replaceall参数是regex, replacement,regex表示是正则表达式。
replace :
String src = new String("ab43a2c43d");
System.out.println(src.replace("3","f"));=>ab4f2c4fd.
System.out.println(src.replace('3','f'));=>ab4f2c4fd.
System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.
System.out.println(src.replaceAll("a","f"));=>fb43fc23d.
System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d
System.out.println(src.replaceFirst("4","h"));=>abh32c43d.
1
2
3
4
5
6
7
8
9
10
11
12
13
java 替换文本内容中的html标签:
String str="<html><h1>sdfsdfsdf</h1><img src=\"1.png\"></img></html>测试<p>测试</p>";
String abc = str.replaceAll("<[a-zA-Z]+[1-9]?[^><]*>", "").replaceAll("</[a-zA-Z]+[1-9]?>", "");
System.out.println(abc);
1
2
3
结果:
sdfsdfsdf测试测试
1
如何将字符串中的”\”替换成”\”:
String msgIn;
String msgOut;
msgOut=msgIn.replaceAll(“\\”,”\\\\”);
原因:
‘\’在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( “\” ) ;只打印出一个”\”。但是’\’也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:\\被java转换成\,\又被正则表达式转换成\。
同样
CODE: \\\\
Java: \\
Regex: \
将字符串中的’/’替换成’\’的几种方式:
msgOut= msgIn.replaceAll(“/”, “\\”);
msgOut= msgIn.replace(“/”, “\”);
msgOut= msgIn.replace(‘/’, ‘\’);
3.lastIndexOf和indexof
- indexOf 和 lastIndexOf 是什么?
- indexOf 和 lastIndexOf 都是索引文件
- indexOf 是查某个指定的字符串在字符串首次出现的位置(索引值) (也就是从前往后查)
- lastIndexOf 是从右向左查某个指定的字符串在字符串中最后一次出现的位置(也就是从后往前查)
- eg:

- 注意:
- 那么问题来了 两个不是一前一后相反方向还是查么?怎么他们两个返回的索引值相同呢?
- 因为:lastIndexOf()方法虽然是从后往前搜索,但返回的位置是从前开始数数和计算的,所以结果和indexOf()方法返回的相同
接下来在看一个例子:

- 这个时候两个返回的索引值就不同了
- 因为: 前面已经说了indexOf是从前向后查 而lastIndexOf是从后向前查 但是二者返回索引都是从前开始数数和计算的
- 总结:
- 当数组(字符串)中所要查询的数(字符串/字符)在字符串(数组)中只出现一次的时候 二者返回的索引值相同
- 当数组(字符串)中所要查询的数(字符串/字符)在字符串(数组)中出现两次及以上的时候
- indexOf 返回的是 valuesearch 第一次在数组(字符串)出现的位置(从左往右)
- lastIndexOf 返回的是 valuesearch 最后一次在数组(字符串)出现的位置(从左往右)《只不过查询的方向不同而已》
4.substring
beginIndex -- 起始索引(包括), 索引从 0 开始。
endIndex -- 结束索引(不包括)
案例获取文件的结尾名
fileurl = fileurl.replace("../", "");//去掉../
log.info("==== fileurl:"+fileurl); // upload/shjz_db/2019/04/28/dfs_1_01_99_1556436628795_shjz_db_y5v9y5l2J4q6.jpg
//获取文件扩展名
int index = field_file.get("fileurl").lastIndexOf(".");
log.info("==== index:"+index); //75
String result = field_file.get("fileurl").substring(index + 1);
log.info("==== result:"+result);//jpg
append、replace、replaceAll、indexof、lastIndexOf、substring的用法的更多相关文章
- js中substr,substring,indexOf,lastIndexOf等的用法
1.substrsubstr(start,length)表示从start位置开始,截取length长度的字符串. var src="images/off_1.png";alert( ...
- JAVA中字符串函数subString的用法小结
本篇文章主要是对JAVA中字符串函数subString的用法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 String str; str=str.substring(int begi ...
- 使用js的indexOf,lastIndexOf,slice三函数轻易得到url的服务器,路径和页名
js的indexOf,lastIndexOf,slice能帮我们在js字符串处理时少走一些弯路. 程序如下: var url="http://www.cnblogs.com/xiandeda ...
- IndexOf() LastIndexOf() Contains() StartsWith() EndsWith()方法比较
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- String中的Indexof,LastIndexOf, Indexofany,LastIndexOfAny 的区别
本文转载自 http://www.cnblogs.com/qinying/archive/2008/09/22/1295730.html 定位子串是指在一个字符串中寻找其中包含的子串或者某个字符.在S ...
- js中substring/substr和C#中Substring的用法
一:在js中截取字符串的方法有两个:substring和substr 1.方法: substring(int stringIndex,[int endIndex]) 截取从索引为stringIndex ...
- C#中substring ()的用法
C#中substring ()的用法:http://www.cnblogs.com/bluespace/archive/2007/12/11/782336.html
- IndexOf、LastIndexOf、Substring的用法
String.IndexOf String.IndexOf 方法 (Char, Int32, Int32)报告指定字符在此实例中的第一个匹配项的索引.搜索从指定字符位置开始,并检查指定数量的字符位置 ...
- IndexOf、LastIndexOf、Substring的用法及C# foreach 中获取索引index的方法
String.IndexOf String.IndexOf 方法 (Char, Int32, Int32)报告指定字符在此实例中的第一个匹配项的索引.搜索从指定字符位置开始,并检查指定数量的字符位置 ...
随机推荐
- Unity中几种简单的相机跟随
#unity中相机追随 固定相机跟随,这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.Collectio ...
- es6技巧写法
为class绑定多个值 普通写法 :class="{a: true, b: true}" 其他 :class="['btn', 'btn2', {a: true, b: ...
- 算法(Algorithms)第4版 练习 1.3.9
主要思路: 用Dijkstra的双栈算法. 遇到数字则压入数字栈中(String). 遇到运算符则压入运算符栈中(String). 遇到右括号时,从数字栈和运算法栈中弹出相应的元素,生成相应的运算表达 ...
- 算法(Algorithms)第4版 练习 1.3.10
主要思路:和1.3.9相似,只不过运算表达式的生成方式不一样 用Dijkstra的双栈算法. 遇到数字则压入数字栈中(String). 遇到运算符则压入运算符栈中(String). 遇到右括号时,从数 ...
- 对C++指针的一个比喻
假如你身在上海,你的电脑出了一点问题,你解决不了,这时你想起了你的远在北京的朋友小D,此时小D打开了他的心爱的笔记本... c++中函数的参数传指针就像你用teamviewer与你的朋友小D建立连接, ...
- POJ 3071 Football:概率dp
题目链接:http://poj.org/problem?id=3071 题意: 给定n,有2^n支队伍参加足球赛. 给你所有的p[i][j],表示队伍i打败队伍j的概率. 淘汰赛制.第一轮(1,2)两 ...
- 初入 CLR - 阅读《CLR via C#》笔记
最近买了一本书<CLR via C#>阅读了第一章 - CLR 的执行模型,对 .NET 一直提到的 CLR 和 .NET Framework 有了一个大致的了解.我理解主要体现在: ■ ...
- 【thrift】vc中使用thrift中文字符串乱码问题解决
问题描述: VC中使用Apache thrift时,如果字符串中包含中文,会出现乱码问题,这个问题的原因是由于thrift为了达到跨语言交互而使用了UTF-8格式发送字符串,这点对java或者C#不会 ...
- kettle脚本定时任务不执行
问题描述:在centos机器上部署了kettle脚本,每天定时跑一次,但是并没有成功跑,手动执行命令是可以的.而且写了一个测试的shell脚本也是可以执行的. 解决方案: 将2的错误输出,/usr/l ...
- PS 滤镜— —球面化效果
clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...