当前位置: 代码迷 >> J2ME >> 宝剑配英雄,高分送高人,关于参数化的逻辑运算,
  详细解决方案

宝剑配英雄,高分送高人,关于参数化的逻辑运算,

热度:4756   发布时间:2013-02-25 21:33:51.0
宝剑配英雄,高分送高人,关于参数化的逻辑运算,求助!
如何构造一个函数,查询一个字符串固定位置的固定字母。

比方说:一个5个字符的字符串,查询第二个位置上位e,第4个位置上为r,即“?e?r?”我知道可以用if(str.CharAt[1].equals('e')&&str.CharAt[3].equals('r')),
但是这是嵌入式的办法,我的问题是如何实现参数化的查询,就是说,查询固定长度字符串中,任意组合位置上的任意组合字母。
比方说"a??e?",或者"???a?","abo??"等等,以此类推。这些查询可以用个别不同的逻辑表达式,但是有没有更general的办法表达。

也就是说java里面能不能实现参数化的逻辑运算?或者说有没有类似宏一类的办法来自动生成要查询的逻辑表达式?

跪求请高手指点!或者说解决这个问题需要学习哪方面的知识?

谢谢!

------解决方案--------------------------------------------------------
Java code
package com.collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;public class TestMap {    /**     * @param args     */    public static void main(String[] args) {            //Map<索引, 字符>            Map<Integer,Character> map = new HashMap<Integer,Character>();          map.put(1,'e') ;           map.put(3,'c') ;          System.out.println(isRight("1e3b0", map)) ;    }         @SuppressWarnings("rawtypes")    public static boolean isRight(String str, Map<Integer,Character> map){                Iterator<Entry<Integer, Character>> it = map.entrySet().iterator();                  while(it.hasNext()){                     Map.Entry m=(Entry<Integer, Character>)it.next();                      Integer key = (Integer) m.getKey() ;                    Character value = (Character)m.getValue() ;                    int k = key ;                    char v = value ;                    if (! (str.charAt(k) == v ) ){                         return false ;                    }                }                return true ;        }}