java中的字符串操作

时间:2012-12-03 10:52:41

标签: java string

我有这样的查询:

"select * from aaa where id < 10 and name = 'test'"

从这个查询中我想找出where之后的条件数(在这种情况下为2)。

另外,我想知道重复<=的次数。

1 个答案:

答案 0 :(得分:0)

你可以简单地计算所有&gt;和=带循环

bool whereCondition = false;
int counterCompare = 0;
int counterConditions = 0;
// select is your SQL String
for(int i = 0;i<select.length;++i)
{
   if(whereCondition){
       if(select.charAt(i) = '<' || select.charAt(i) = '>') {
          ++counterCompare;
       }
       if(select.charAt(i) = '=' && !(select.charAt(i+1) = '<' || select.charAt(i+1) = '>')) {
          ++counterCompare;
       }
       if (select.charAt(i) = 'A') {
         if(i+2 < select.length) {
            if(select.charAt(i+1) = 'N' &&
               select.charAt(i+2) = 'D')
                  ++counterCondition;
         }
      }
      if (select.charAt(i) = 'O') {
         if(i+4 < select.length) {
            if(select.charAt(i+1) = 'R' &&
               select.charAt(i+2) = 'D' &&
               select.charAt(i+3) = 'E' &&
               select.charAt(i+4) = 'R' &&)
                  whereCondition = false;
         }
      }
   }
   else {
      if (select.charAt(i) = 'W') {
          if(i+4 < select.length) {
             if(select.charAt(i+1) = 'H' &&
                select.charAt(i+2) = 'E' &&
                select.charAt(i+3) = 'R' &&
                select.charAt(i+4) = 'E' &&)
                   whereCondition = true;
          }
      }
   }
}

我不保证此代码能够正常运行。你还必须处理基于订单或和比较的条件。所以你需要检查,如果你发现了一个和,如果你不是一个字符串,你在表中进行比较。你还必须检查你是否有小或高的字母。但这只是一个基本的比较