System.out.println("111111111");
String s = "(A+B*C)";
int i = 0,j = 0,m = -1,n = -1;
m = s.indexOf("(",0);
while(m!=-1){
i++;
m = s.indexOf("(",m+1);
}
n = s.indexOf(")",0);
while(n!=-1){
j++;
n = s.indexOf(")",n+1);
} if(i == j){
System.out.println("right!");
}else{
System.out.println("erro!");
}
不知道是不是这个意思
String s = "(A+B*C)";
int i = 0,j = 0,m = -1,n = -1;
m = s.indexOf("(",0);
while(m!=-1){
i++;
m = s.indexOf("(",m+1);
}
n = s.indexOf(")",0);
while(n!=-1){
j++;
n = s.indexOf(")",n+1);
} if(i == j){
System.out.println("right!");
}else{
System.out.println("erro!");
}
不知道是不是这个意思
解决方案 »
- 为什么文本域里面的内容不能选中
- 用纯JAVA数据库驱动程序连接JSP页面和SQL server2000出现下TCP/IP连接失败异常是怎么回事?
- servlet登录
- struts 2迭代标签,问号传值问题。
- 请问一个棘手问题的解决方法,大家帮忙看下,应该很多人会碰到
- 救命啊!一个非常棘手的问题,在线等!!
- 难以解决的奇怪问题!求助!
- jive3.2.3怎么汉化阿?在线等待,搞定后马上接分!
- 在jsp中用ajax怎么获取 struts2 中传递过来的参数。下面是struts.xml的配置文件
- (急)100分请教高手,JSP文件转换成servlet
- 紧急!++用VB编的密码解密函数 转换为 JSP 。请各位高手救命++
- response.sendRedirect 怎么在一个页面中跳转?
public text() {
}
/**
* 字符串去全角半角空格
* @param s String
* @return String
*/
private static String stringTrim(String s){
s = s.replaceAll(" ","");
s = s.replaceAll(" ","");
return s;
}
/**
* 判断括号个数是否合适
* @param s String
* @return boolean
*/
private static boolean kuoHao(String s,String zuo,String you){
int i = 0,j = 0,m = -1,n = -1;
m = s.indexOf(zuo,0);
while(m!=-1){
i++;
m = s.indexOf(zuo,m+1);
}
n = s.indexOf(you,0);
while(n!=-1){
j++;
n = s.indexOf(you,n+1);
} if(i == j){
return true;
}else{
return false;
}
}
/**
* 判断运算符是否合理
* @param s String 要判断的字符串
* @param y String 运算符
* @return boolean
*/
private static boolean yunSuanFu(String s,String y){
int m = -1;
m = s.indexOf(y,0);
if(m == 0){//运算符再第一位
return false;
}
if(m == s.length() - 1){//运算符再最后位
return false;
}
while(m != -1){
if(qian(s.charAt(m-1))){
if(hou(s.charAt(m+1))){
m = s.indexOf(y,m+1);
}else{
return false;
}
}else{
return false;
}
}
return true;
}
/**
* 判断运算符的前是否合理
* @param s String
* @return boolean
*/
private static boolean qian(char c){
char[] bia = {'(','{','[','+','-','*','/'};
for(int i = 0; i<bia.length;i++){
if(bia[i]==c){
return false;
}
}
return true;
}
/**
* 判断运算符的后是否合理
* @param s String
* @return boolean
*/
private static boolean hou(char c){
char[] bia = {')','}','[','+','-','*','/'};
for(int i = 0; i<bia.length;i++){
if(bia[i]==c){
return false;
}
}
return true;
}private static boolean iDo(String s){
boolean state = false;
s = stringTrim(s);
if(kuoHao(s,"(",")")){
if(yunSuanFu(s,"+")){
state = true;
}
else{
state = false;
}
}
else{
state = false;
}
if(!state){
return state;
}
if(kuoHao(s,"(",")")){
if(yunSuanFu(s,"-")){
state = true;
}
else{
state = false;
}
}
else{
state = false;
}
if(!state){
return state;
}
if(kuoHao(s,"(",")")){
if(yunSuanFu(s,"*")){
state = true;
}
else{
state = false;
}
}
else{
state = false;
}
if(!state){
return state;
}
if(kuoHao(s,"(",")")){
if(yunSuanFu(s,"/")){
state = true;
}
else{
state = false;
}
}
else{
state = false;
}
if(!state){
return state;
}
return state;
}
public static void main(String[] args){
String s = "5(1+2+3+(4) +5)5";
if(iDo(s)){
System.out.println("right!");
}
else{
System.out.println("erro!");
}
System.out.println("the end");
}
}
我写了一个,估计问题很多。大家一起帮忙测一下