lovecy 发表于 2009-11-8 21:24:36

小技巧两则——RFT方法和纯JAVA

问题场景1:

  在使用RFT工具时,遇到一个比较特殊的情况,即:某个文本框限定了输入的字符类型(如只接受数字),而这个限定不是限定在键盘的输入上,它能让你输入任意字符,只是输入一个字符后它会马上判断是不是可接受的类型,如果不是,则会清空。那么同样的,这种控件还有一个特点,那就是:如果现在这个文本框中已经有一个数字了,我们从它的上一个控件使用tab键,此时光标在待输入的文本框中,我们会发现光标自动跑到原有数字的后面了,这时如果在代码中使用xxx.setText("String")方法来输入值的话将会出现问题。例如,原来在文本框中输入了数字10,现在回放脚本时,我们要让它输入20,那么回放时会发现,这个文本框的值变成了1020了,显然不是我们想要的。

解决方法:

  设置文本框的值除了可以使用xxx.setText("String you want to input")外,其实RFT还提供了很多类似的方法,其中,xxx.setProperty(".value","String you want to input")就能起到做用,这个方法直接将文本框的.value属性的值设置为我们输入的值,能达到我们的要求!OK,搞定~~



问题场景2:

  由于特殊需要,今天在取一个字符串时,需要找出该字符串中某子字符串出现的次数,例如A字符串为what is this?my name is what!,现在需要找出A字符串中包含有多少个is。我不知道java类库中有没有提供很方便的方法哈~但是问了一下开发人员,他们没有说有简便的方法,没办法,只好自己胡乱整吧。

解决思路:

  既然取一个字符串A中出现子字符串B的次数,那么就先获取A字符串的长度(如上面例子中a.length()=29)。然后把需要查找的子字符串B替换成空,(即现在字符串成了whatth?my namewhat!),然后再获取这个字符串的长度(length()=23),OK,两个长度相减,得出29-23=6,再除以要查找的子字符串的长度(is的长度为2),那么6/2=3,即is在A字符串中出现的次数为3。呵呵,很土的方法。不过能实现就OK了,管它土不土呢,嘿嘿~

/**

* @parameter orginStr原始字符

* @parameter subStr 要查询的子字符

* @return 返回子字符在原始字符串中出现的次数

**/

private int countOfString(String originStr, String subStr)

{

  int count = 0;

  int orginLength = originStr.length();   //原始字符串的长度

  String temp = null;

  if(subStr != null && subStr != "" && !subStr.equals(""))

  {

    temp = orginStr.replace("subStr","");  //将原始字符串中的子字符替换为空

  }

  int afterReplaceLength = temp.length();  //替换为空后字符串的长度

  count = (orginLength - afterReplaceLength)/subStr.length() ;  //两者之间的差除以子字符的长度得出出现的次数

  return count;  //返回次数

}

dennyqiang 发表于 2010-2-23 00:17:44

不错,收藏。

maobeike 发表于 2010-7-2 11:48:26

后面那个可以用正则吧

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegTest {
        static void test() {
                Pattern p = null;
                Matcher m = null;
                int a = 0;

                p = Pattern.compile("is");
                m = p.matcher("what is this?my name is what!");
                // b = m.matches();
                while (m.find()) {
                        a++;
                }
                System.out.println("is 出现了"+a+"次");

        }

        public static void main(String args[]) {
                test();
        }
}
页: [1]
查看完整版本: 小技巧两则——RFT方法和纯JAVA