碰到一个应用场景,有一表单字符串:
String test = "<form><input ...><input ...>...<input ...></form>";
现在需要在最后一个<input ...>字段后再加上一个<input ...>字段,用来实现特定的功能,前提是这个字符串长度是不定长的,<input ...>的个数也是不定的。
当时碰到这个问题直接想到两个方法,indexOf和replace,下面给出我的解决方法。
indexOf:
String test = "<form><input ...><input ...>...<input ...></form>";
String str = "<input last>";
int ch = test.indexOf("</form>");
test = test.substring(0, ch) + str + test.substring(ch, test.length());
/** 结果 */
test = "<form><input ...><input ...>...<input ...><input last></form>"
replace:
String test = "<form><input ...><input ...>...<input ...></form>";
String str = "<input last>" + "</form>";
test = test.replace("</form>", str);
/** 结果 */
test = "<form><input ...><input ...>...<input ...><input last></form>"
两个方法的复杂度基本一样,但我觉得第一种可能更灵活一点,因为如果后面</form>字段也是不定长的话,repalce方法就不能直接这么用了,可能还得和indexOf结合用,更麻烦。
indexOf方法:指定所要查找的内容在字符串中第一次出现的位置,如果未出现则返回-1,区分大小写。lastIndexOf方法基本一样,有以下几种用法:
String str = "hello world";
/** 查找字符0第一次出现的位置索引*/
int a = str.indexOf("o");
/** 查找字符0从索引4开始第一次出现的位置索引*/
int b = str.indexOf("o", 4);
/** 查找字符0最后一次出现的位置索引*/
int c = str.lastIndexOf("o");
/** 查找字符0在索引4内最后一次出现的位置索引*/
int d = str.lastIndexOf("o", 4);
int e = str.lastIndexOf("o", 3)
/** 结果 */
a=4,b=4,c=7,d=4,e=-1
replace方法:在字符串中对替换相应的字符或字符串,相关方法还有replaceFirst与replaceAll。
replaceFirst:替换在原始字符串中第一次出现的字符或字符串,以后的不管。
replaceAll:与replace相比都是全部替换,不同的是基于规则表达式的替换,对特殊字符的处理有些不同。
String test = "a1b2c1d2";
String a = test.replace("1", "3");
String b = test.replaceFirst("1", "3");
String c = test.replaceAll("\\d", "e");
/** 结果 */
a = "a3b2c3d2"
b = "a3b2c1d2"
c = "aebecede"
分享到:
相关推荐
indexOf(String s ,int startpoint) 从startpoint处开始检索 如果没有检索到,将返回-1 6、得到字符串的子字符串 substring(int startpoint) 从startpoint处开始获取 substring(int start,int end) 从start到end...
indexOf(String s ,int startpoint) 从startpoint处开始检索 如果没有检索到,将返回-1 6、得到字符串的子字符串 substring(int startpoint) 从startpoint处开始获取 substring(int start,int end) 从start到end...
java字符转换类代码,可以... getstr = getstr.substring(0,getstr.indexOf(oldString)) newString getstr.substring(getstr.indexOf(oldString) oldString.length(),getstr.length()); } return getstr; }
if (strReturn.indexOf("OK", 0) != -1) { return true; } return false; } catch (Exception ex) { System.gc(); ex.printStackTrace(); return false; } } /** * 封闭COM口 * @return boolean */ ...
int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引 int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始 int lastIndexOf...
7、regionMatches() 用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。 boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars) ...
基于GUI用IO流中的ZipOutputStream ,ZipInputStream实现文件的解压与压缩, 如文件解压函数如下 private void unZip(String zipFileName, String outputDirectory)throws Exception { InputStream in=null; ...
17.7.5 fn:indexof 541 17.7.6 fn:replace 542 17.7.7 fn:substring 543 17.7.8 fn:substringbefore 544 17.7.9 fn:substringafter 544 17.7.10 fn:split 545 17.7.11 fn:join 546 17.7.12 fn:tolowercase ...
int markStar = sb1.indexOf("&"); //判断方法是以&开头的数据默认为要处理的无字符 if(markStar==0){ String temp = sb1.substring(markStar,8); car = car+Change(temp); sb1=sb1.substring(8); }else if...
17.7.5 fn:indexof 541 17.7.6 fn:replace 542 17.7.7 fn:substring 543 17.7.8 fn:substringbefore 544 17.7.9 fn:substringafter 544 17.7.10 fn:split 545 17.7.11 fn:join 546 17.7.12 fn:tolowercase ...
17.7.5 fn:indexof 541 17.7.6 fn:replace 542 17.7.7 fn:substring 543 17.7.8 fn:substringbefore 544 17.7.9 fn:substringafter 544 17.7.10 fn:split 545 17.7.11 fn:join 546 17.7.12 fn:tolowercase ...
17.7.5 fn:indexof 541 17.7.6 fn:replace 542 17.7.7 fn:substring 543 17.7.8 fn:substringbefore 544 17.7.9 fn:substringafter 544 17.7.10 fn:split 545 17.7.11 fn:join 546 17.7.12 fn:tolowercase ...
if (fileName.indexOf(errChar.charAt(i)) != -1) { isValid = false; break; } } } return isValid; } /** * 把非法文件名转换为合法文件名. * * @param fileName * @return ...
6.1.1 字符串查找 Java语言程序设计(第3版) int indexOf(int ch) int lastIndexOf(int ch) 找到返回下标值,找不到返回-1。 Java语言程序设计(第3版)第06章-字符串全文共31页,当前为第7页。 6.1.1 字符串转换为数...
屏蔽关键字(sex , fuck) - 已修改<script language="JavaScript1.2">function test() {if((a.b.value.indexOf ("sex") == 0)||(a.b.value.indexOf ("fuck") == 0)){ alert("五讲四美三热爱"); a.b.focus(); return ...
这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>... <#else> ... 例子如下: (age>60)>老年人 ...
5、Java中字符串的处理:String类和StringBuffer类,substring()、indexOf()、lastIndexOf()、replace()、replaceAll()、trim()、toLowerCase()、endsWith()、equals()、split()等方法的使用 6、Java类集:List,...
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with ... int pos_start = str.indexOf("${"); ...
int index = string.indexOf("mac"); //获取没有分隔符的mac标志 prefix String key = string.substring(index + 6, index + 14).replace(":", ""); //每行加入 brand 节点,写入到文中 JSONObject jsobj=...
int index2 = type.indexOf(">"); type = type.substring(index1 + 1, index2); Class cls1 = Class.forName(type); String jString = jsonObject2.toString(); String key1 = varName[i];...