64,637
社区成员
发帖
与我相关
我的任务
分享
~# echo "\w{3,16}" | regxstr 10
#include <iostream>
#include <regxstring.h>
using namespace std;
int main()
{
const char * expr = "\\w{3,16}";
CRegxString regxstr;
regxstr.ParseRegx(expr);
for(int i = 0;i < 10;++i)
cout<<regxstr.RandString()<<endl;
return 0;
}
//cpp
#include "RandomString.h"
#include "regxstring.h"
#include <math.h>
#include <stdio.h>
#include <string.h>
jstring stoJstring(JNIEnv* env, const char* pat)
{
jclass strClass = env->FindClass("Ljava/lang/String;");
jmethodID ctorID = env->GetMethodID(strClass, "<init>", "([BLjava/lang/String;)V");
jbyteArray bytes = env->NewByteArray(strlen(pat));
env->SetByteArrayRegion(bytes, 0, strlen(pat), (jbyte*)pat);
jstring encoding = env->NewStringUTF("utf-8");
return (jstring)env->NewObject(strClass, ctorID, bytes, encoding);
}
JNIEXPORT jstring JNICALL Java_RandomString_getString
(JNIEnv *env, jclass jcl, jstring s){
const char* szStr=(env)->GetStringUTFChars(s,0);//两个参数
//printf("string=[%s]",szStr);
CRegxString regxstr;
regxstr.ParseRegx(szStr);
return stoJstring(env,regxstr.RandString());
}
public class RandomString {
public static native String getString(String rex);
static {
System.loadLibrary("lib/RandomString");
}
public static void main(String[] args) {
for (int i = 0; i < 100; i++)
System.out.println(getString("[01]?[0-9][:][0-5]?[0-9]|[2]?[0-3][:][0-5]?[0-9]"));
try {
Thread.sleep(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/*
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
...全重复了
*/