java版strspn

来源:互联网 发布:库里2016常规赛数据 编辑:程序博客网 时间:2024/06/07 02:12

今天看到C++ string中有一个strspn()函数功能是:返回字符串中第一个不在指定字符串中出现的字符下标

然之后在java中写一道算法题,正好想到用这个函数会方便很多,于是去java API帮助文档中寻找有没有这样的函数,结果大失所望,居然没有,想了片刻决定自己仿造C++中的函数改写一下,改写成java语言的strspn。

参照的strspn源码

size_t strspn    (    const char * s,             /* string to search */    const char * sep            /* set of characters to look for in <s> */    )    {     const char *save;    const char *p;    char c1;    char c2;     for (save = s + 1; (c1 = *s++) != EOS; )for (p = sep; (c2 = *p++) != c1; )    {     if (c2 == EOS)return (s - save);             }     return (s - save);     }
改写后的java版的strspn

public static int strspn(String a,String b) {    //a:string to search//b: set of characters to look for in <s>char cmp1;char cmp2;String re=a;String ress=b;String save;String p;save=a.substring(1);for (;(cmp1=a.charAt(0))!=a.charAt(a.length()-1);) {a=a.substring(1);for(p=b;(cmp2=p.charAt(0))!=cmp1;){p=p.substring(1);if(cmp2==b.charAt(b.length()-1)){return (save.length()-a.length());}}}return (a.length()-save.length());}


0 0