java匹配括号
⑴ java中怎么判断匹配情况
能匹配任何字符串,比如1、a、sdf、3adfs、kfgfh等等,也能匹配m1、wapdd等m、wap开头的。但是排除m、wap的情况。
括号匹配问题:大部分情况是有括号和花括号在一起的一对一对的,就跟情侣一样的。
然后分号就是和括号一对一的出现的凡出现左括号,则进栈。
凡出现右括号,首先检查栈是否空若栈空,则表明该“右括号”多余,否则和栈顶元素比较。若相匹配,则“左括号出栈”, 否则表明不匹配。
表达式检验结束时,若栈空,则表明表达式中匹配正确,否则表明“左括号”有余。
⑵ java正则表达式匹配小括号内的内容
String str = "(aa){(dd)cbdsagchgkhdbvljck(ff)}";
Pattern pattern = Pattern.compile("(?<=\\()[^\\)]+");
Matcher matcher = pattern.matcher(str);
while(matcher.find())
{
System.out.println(matcher.group());
}
⑶ java 匹配大括号内容
[^}]表示不包括右大括号即可。
根据你的正则表达式,以下语句均合法:
${anythingYouNeed}
${0123$4{}
${}
换成{ 一样能用。
⑷ Java中如何使用正则匹配一对中括号中的引号冒号(":),目的是在冒号后加个空格
我觉得楼上那位说把中括号里的取出来处理了再弄回去可行啊,把原字符串一分为三,把中间处理了再组合起来,但是我写的这个很low只能处理一次中括号:
⑸ java 怎么撷取字串中的括号
java 怎么撷取字串中的括号 可以通过java的”substring“方法截取出对应的字串,前提是知道开始和结束的字串的值:
String getSignInfo = reqResult.substring(reqResult.indexOf("(") + 1, reqResult.indexOf(")"));
解释:上述方法就是撷取reqResult字串的中开始”(“和结束”)“中间部分的内容,”1“就是”)“的长度,之后将获取的结果赋值给”getSignInfo进行输出即可“;
备注:以上方法通用于撷取字串,数字”6“和开始结束字串根据实际需要修改即可。
java怎么撷取字串
1、subString(int start);撷取从小标为start位置开始到结尾的字串
2、subString(int start,int end);撷取从小标为start位置开始到小标为end-1的字串
3、split(String s);将根据s匹配,将字串截成阵列;
比如String str = ”aa,b,vc,java“
str.split(",")得到的就是阵列{”aa“,”b“,”vc“,”java“}
java 撷取字串
楼主首先要明白一个本质的问题,只有变数才能够被赋值。方法的返回值是不能被赋值的。
还有一个问题需要解释一下,String a="abcabc",如果你是想就地把第1个a替换成b,那这是办不到的!
我们能办到的是,拷贝一个副本,在此副本上进行操作。我所说的副本可以是阵列,也可以是StringBuffer.
操作完后,再利用修改后的副本构造一个新的String物件,最后让a指向这个物件。
来解决你提的第一个问题吧,我觉得方案有很多。
用阵列:
char[] c=a.toCharArray();
c[0]='b';
a=new String(c);
用StringBuffer():
StringBuffer b = new StringBuffer( a );
b.setCharAt( 0 , 'b' );单引号
a=b.toString();
再回答第二问
Buffer是缓冲区的意思.缓冲区是用于储存临时资料的(还在被使用者所操作).
StringBuffer就是字串缓冲区.在缓冲区内可以进行各种写操作,如拼接字串,修改字串等.
public class Test {
public static void main(String[] args) {
String str = "C:\\\\Program%20Files\\\\Apache%20Sofare%20Foundation\\\\Tomcat%206.0\\\\webapps\\\\viptickets\\\\financial\\\\excel\\\\rsf_20110620133950.xls";
System.out.println(str.replaceAll("%20", " "));
}
}
---------------------------
C:\\Program Files\\Apache Sofare Foundation\\Tomcat 6.0\\webapps\\viptickets\\financial\\excel\\rsf_20110620133950.xls
/*
思路:
判断最后一个被撷取的位元组是不是负数。
如果是负数,继续往前判断,连续的负数的个数。
如果是偶数,说明没有半个中文。不用舍弃。
如果是奇数,说明有半个中文出现,舍弃最后一个位元组。
*/
public class EncodeTest {
public static String cutString(String str,int len)throws Exception
{
byte[] buf = str.getBytes("GBK");
int count = 0;
for(int x=len-1; x>=0; x--)
{
if(buf[x]<0)
count++;
else
break;
}
if(count%2==0)
return new String(buf,0,len);
else
return new String(buf,0,len-1);
}
public static void main(String[] args) throws Exception {
String str = " 我abc汉字 ,6";
int len = 6; 想要撷取的长度,不管长度为几,都不会出现半个中文字符
System.out.println(cutString(str,len));
}
}
Java 撷取字串
public String getString(String str,String str1 ){
int index = str1.indexOf(str); str1是想要开始撷取的字符。str是被撷取的字符。
return str.subString(index+1,str.length);
}
java中撷取字串
用java中String类里的split();方法 这一方法支援正则表示式
用法
String str=“1234567.1234”;
String [] strs = str.split("[.]");
就可以得到阵列 strs[0] =1234567; strs[1] =1234
java中subString撷取首位撷取字串末尾撷取字符
String str="(HOST = 192.168.1.217)";
String end = str.substring(str.length()-1);
end 就是你要的末尾值。
你的目的是不是就是只是为了获取端口号??
java string怎么撷取字串
通常使用subString方法进行字串的撷取
特殊情况, 使用splite方法,对字串进行切割
但都不会影响到原始的字串的资料
参考程式码
public class Test { public static void main(String[] args) { String str= "abc苹果def";下标和阵列 一样, 也是从0开始 String str1 = str.substring(3, 5);下标包含3,不包含5 .也就是下标是3~4 String str2=str.substring(6);从下标6 开始,直到结束 String[] ss = str.split("苹果");使用字串切割 String str3 = ss[0];abc String str4 = ss[1];def System.out.println(str);原始字串,不会改变 System.out.println(str1); System.out.println(str2); System.out.println(str3); System.out.println(str4); }}
输出
abc苹果def苹果efabcdef
⑹ java 正匹配两个括号中间的字符串,不包括两个括号,怎么写
取括号里的正则:.*?\\((.*?)\\).*?
取标签中间内容:<p>(.*?)</p>
⑺ 编写一java程序,判断表达式中圆括号是否匹配
java-- 匹配{[()]}
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
publicclassTest{
//匹配()[]{}
publicstaticbooleancheck(Stringexpr){
if(expr==null||"".equals(expr))returntrue;
List<String>list=newArrayList<String>();
Map<String,String>map=newHashMap<String,String>();
map.put("(",")");
map.put("[","]");
map.put("{","}");
for(inti=0;i<expr.length();i++){
Stringch=expr.charAt(i)+"";
if(map.keySet().contains(ch)){
list.add(ch);
}elseif(map.values().contains(ch)){
if(list.isEmpty()||!ch.equals(map.get(list.get(list.size()-1)))){
returnfalse;
}else{
list.remove(list.size()-1);
}
}
}
returnlist.isEmpty();
}
publicstaticvoidmain(String[]args){
System.out.println(check("{([])}"));
System.out.println(check("{a(b[c{e}f(s)])}"));
System.out.println(check("{([]]]])}"));
}
}
⑻ 试编写一个算法从检查一个Java语言中的大括号方括号小括号是否配对,若能够全
要编写用于检查 Java 程序中的大括号、方括号和圆括号是否正确匹配的算法,可以使用堆栈数据结构来跟踪代码中遇到的左大括号。例如,您可以使用以下步骤:
初始化空堆栈。
循环遍历 Java 程序中的字符,从第一个字符开始。
如果当前字符是左大括号(即、、或),则将其推送到堆栈上。{[(
如果当前字符是右大括号(即、或),则从堆栈中弹出顶部元素。如果弹出的元素与当前右大括号不匹配,则返回(指示大括号未正确匹配)。}])False
重复步骤 3 和 4,直到到达 Java 程序的末尾。
如果堆栈为空,则返回(指示大括号正确匹配)。否则,返回(表示大括号未正确匹配)。TrueFalse
此算法使用堆栈来跟踪 Java 程序中遇到的左大括号,并通过将右大括号与从堆栈中弹出的相应左大括号进行比较来检查是否匹配。此方法可以处理大括号的任意嵌套结构,并将正确识别 Java 程序中的大括号是否正确匹配。
请注意,这只是一个示例算法,可能还有其他方法可以解决此问题。您可以尝试不同的方法来找到最适合您的解决方案。
⑼ 用java正则表达式匹配方括号问题
find()方法是部分匹配,是查找输入串中与模式匹配的子串。
matches()是全部匹配,是将整个输入串与模式匹配,因此只有整个字符串都符合正则表达式才会返回true
System.out.println(Pattern.matches("\\[.+?\\]", "[呵呵]"));