迷失的季节吉他谱:函数判断字符串中"{"与"}"匹配
来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 10:22:53
用java写一个函数判断字符串中"{"与"}"匹配? 提示:"{"与"}"必须同时出现,"{"必须在"}"前面,允许嵌套
public static boolean isMatch(String value)
{
int counter= 0; // 记录{出现的次数
for (int i=0; null!=value && i {
char ch = value.charAt(i);
if (ch == '{') counter++;
if (ch == '}') counter--;
if(counter<0) return false; // 确保"{"先出现
}
return counter==0;
}
public class T {
public static boolean isMatch(String value) {
int numCount = 0, numMatch = 0;
for (int i=0; null != value && i char ch = value.charAt(i);
if (ch == '{') {
numCount ++;
numMatch ++;
} else if (ch == '}') {
numCount --;
}
if (numCount < 0) {
return false;
}
}
return (numMatch > 0 && numCount == 0);
}
public static void main(String args[]) {
System.out.println( "=========must false=====" );
System.out.println( isMatch(null) );
System.out.println( isMatch("") );
System.out.println( isMatch("ddddd") );
System.out.println( isMatch("d{dddd") );
System.out.println( isMatch("dd{}}ddd") );
System.out.println( isMatch("d}dd{dd") );
System.out.println( "=========must true=====" );
System.out.println( isMatch("dd{}ddd") );
System.out.println( isMatch("ddd{{}d}d") );
System.out.println( isMatch("d{d{d}d}d") );
}
}
//正则有点暴力嵌套层数有限, 更好的写法是: /^((?:[^{}]++|{(?1)})*+)$/ ,不过不清楚java支不支持。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestCurlyBraces
{
private Pattern pattern = Pattern.compile("[^{}]*(\\{[^{}]*(\\{[^{}]*\\}[^{}]*)*\\}[^{}]*)*[^{}]*");
/**
* @param args
*/
public static void main(String[] args)
{
TestCurlyBraces instance = new TestCurlyBraces();
String input = "asda{asd{fsfsff}sdfab245}2{32}";
instance.match(input);
}
public void match(String input)
{
Matcher match = pattern.matcher(input);
if (match.matches())
System.out.println(match.group());
else
System.out.println("not matched.");
}
}
public static boolean isMatch(String value)
{
int counter= 0; // 记录{出现的次数
for (int i=0; null!=value && i
char ch = value.charAt(i);
if (ch == '{') counter++;
if (ch == '}') counter--;
if(counter<0) return false; // 确保"{"先出现
}
return counter==0;
}
public class T {
public static boolean isMatch(String value) {
int numCount = 0, numMatch = 0;
for (int i=0; null != value && i
if (ch == '{') {
numCount ++;
numMatch ++;
} else if (ch == '}') {
numCount --;
}
if (numCount < 0) {
return false;
}
}
return (numMatch > 0 && numCount == 0);
}
public static void main(String args[]) {
System.out.println( "=========must false=====" );
System.out.println( isMatch(null) );
System.out.println( isMatch("") );
System.out.println( isMatch("ddddd") );
System.out.println( isMatch("d{dddd") );
System.out.println( isMatch("dd{}}ddd") );
System.out.println( isMatch("d}dd{dd") );
System.out.println( "=========must true=====" );
System.out.println( isMatch("dd{}ddd") );
System.out.println( isMatch("ddd{{}d}d") );
System.out.println( isMatch("d{d{d}d}d") );
}
}
//正则有点暴力嵌套层数有限, 更好的写法是: /^((?:[^{}]++|{(?1)})*+)$/ ,不过不清楚java支不支持。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestCurlyBraces
{
private Pattern pattern = Pattern.compile("[^{}]*(\\{[^{}]*(\\{[^{}]*\\}[^{}]*)*\\}[^{}]*)*[^{}]*");
/**
* @param args
*/
public static void main(String[] args)
{
TestCurlyBraces instance = new TestCurlyBraces();
String input = "asda{asd{fsfsff}sdfab245}2{32}";
instance.match(input);
}
public void match(String input)
{
Matcher match = pattern.matcher(input);
if (match.matches())
System.out.println(match.group());
else
System.out.println("not matched.");
}
}
函数判断字符串中"{"与"}"匹配
Excel 如何提取字符串中第一个非数字字符及之后的字符串 - Excel函数与公式
字符串函数
判断字符串中是否含有中文字符
C语言中操作字符串的一些函数源代码
正则表达式:匹配字符串中除了"abc"以外的所有其它部分
字符串函数大全
ASP字符串函数大全
1.?字符串操作函数
SQL常用字符串函数
Delphi字符串函数大全
MATLAB字符串转换函数
字符串匹配算法之Aho-Corasick
C语言字符串函数全
各种字符串输入函数解析
C语言字符串函数大全
用函数在Excel中从文本字符串提取数字7
c语言在串中查找指定字符串的第一次出现函数
java中字符串操作方法
字符串匹配(string matching)算法之一 (Naive and Rabin_K...
EXCEL中TEXT函数与日期函数详解+
分享:VBA数据类型转换函数 VBA时间函数 vba字符串函数
函数与函数指针
常用字符串长度计算函数 - 游戏程序设计 - 云世界日志