public class StringDemo{
public static void main(String args[]){
String s1="this is my startsWith string"
String sd="startsWith"
if (s1.startsWith(sd))
//startsWith()方法判断字符串s1是否从字符串sd开始
s1=s1.substring(sd.length())
else
if(s1.endsWith(sd))
//endWith()方法判断字符串s1是否从字符串sd结尾
s1=s1.substring(0,s1.length()-sd.length())
else
{
int index=s1.indexOf(sd)
//indexOf()搜索字符或子字符串首次出现,这里的index等于11
if(index!=-1)
{
String s2=s1.substring(0,index)
//从字符串s1的首字符开始,取index个字符
String s3=s1.substring(index+sd.length())
//取字符串s1的第19个字符后面的字符串
s1=s2+s3
}
else
System.out.println("string \""+sd+"\" not found")
}
System.out.println(s1)
}
}
当然,java的String对象还提供了判断是否以哪个字母开头的方法startwith(),这些其实内部的方法是将字符串进行拆分,逐个进行比较。
主要是用正则表达式的分组匹配技术。1、以某字符结尾:例如sex$;2、中间不包含该字符串:^((?!sex).*)3、最后合起来就是:^((?!sex).*)sex$“正则表达式”选中以某些字符开始,某些字符结尾的字符串?的含义如下:字符 含意:\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b" ,当b 前面加了反斜杆后/\b/,转意为匹配一个单词的边界。-或-对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa ,加了"\"后,/a\*/将只匹配"a*"。^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa? 匹配前面元字符0次或1次,/ba*/将匹配b,ba(x) 匹配x 保存x 在名为$1...$9的变量中x|y 匹配x 或y,{n} 精确匹配n 次,{n,} 匹配n 次以上{n,m} 匹配n-m 次,[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)[^xyz] 不匹配这个集合中的任何一个字符,[\b] 匹配一个退格符,\b 匹配一个单词的边界\B 匹配一个单词的非边界,\cX 这儿,X 是一个控制符,/\cM/匹配Ctrl-M。var re = /.*#(.*):$/ivar str = 'asdsad“123”#void:'
alert(str.match(re)[1]) // void
var str2 = 'InternetGatewayDevice.WANDevice.1.WANConnectionDevice.4.WANPPPConnection.1#VLAN:'
alert(str2.match(re)[1]) // VLAN