我有两种可能性,制作正则表达式或制作if比较.
如果比较
if (!(modoImpressao.equals("IMPRESSORA") ||
modoImpressao.equals("PDF") || modoImpressao.equals("AMBOS")))
Run Code Online (Sandbox Code Playgroud)
正则表达式匹配
if (!Pattern.compile("(IMPRESSORA)|(PDF)|(AMBOS)",Pattern.DOTALL).matcher(modoImpressao).find()){
throw new EspdNeverStopParametroInvalidoException(TspdConstMessages.IMPRIMIR_PARAMETRO_MODOIMPRESSAO_INVALIDO,"TspdImprimirNFCe");
}
Run Code Online (Sandbox Code Playgroud)
哪一个更快?
我在Delphi中创建一个DLL,方法如下:
function teste3 : PWideString; stdcall;
var
_string : string;
begin
_string := 'teste';
Result := PWideString(_string);
end;
Run Code Online (Sandbox Code Playgroud)
然后我试图在JAVA中使用JNA lib调用此方法.在JAVA中调用该方法的代码是这样的:
System.out.println(TDLL.getInstance().teste3());
Run Code Online (Sandbox Code Playgroud)
但是当调用的返回只是char t时,文本的其余部分才会出现.
我怎么能转换String到PWideString,而不会丢失所有的字符?
Obs:我也尝试过返回PWideChar但结果是一样的.