有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java用其他字符替换字符串中的字符会产生异常

我正在使用正则表达式提取一些值,比如"Ehj113GPTAw9RMbTgxce2jqh+2rn7tLWFz5JHyhxa+K68ksbE3O5MPvvLU4ihAeaE08DlO7X04MpSVRP7jZIHGv0qPzdmJgwXZUOmVwFWNTQZbpH"

我想用“%2B”替换“+”并将其作为"Ehj113GPTAw9RMbTgxce2jqh%2B2rn7tLWFz5JHyhxa%2BK68ksbE3O5MPvvLU4ihAeaE08DlO7X04MpSVRP7jZIHGv0qPzdmJgwXZUOmVwFWNTQZbpH"发送到第二个请求

我怎样才能做到这一点

我已经试过了replaceAllreplace,但我哪里出了问题

var Connect = vars.get("92_ConnectionToken").toString();
log.info(Connect);
String ConnectToken = Connect.replaceAll("+", "%2B");
String ConnectFinal = ConnectToken.replaceAll("/", "%2F");
vars.put("92_ConnectionToken", ConnectFinal);
log.info(ConnectFinal);

预期结果:

Ehj113GPTAw9RMbTgxce2jqh%2B2rn7tLWFz5JHyhxa%2BK68ksbE3O5MPvvLU4ihAeaE08DlO7X04MpSVRP7jZIHGv0qPzdmJgwXZUOmVwFWNTQZbpH.

此字符串应作为第二个请求的输入发送

实际结果:

2019-05-13 10:37:22,343 ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: `` var Connect = vars.get("92_ConnectionToken").toString(); log.info(Connect); Str . . . '' : Typed variable declaration : Method Invocation Connect.replaceAll
2019-05-13 10:37:22,343 WARN o.a.j.m.BeanShellPreProcessor: Problem in BeanShell script. org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval   Sourced file: inline evaluation of: `` var Connect = vars.get("92_ConnectionToken").toString(); log.info(Connect); Str . . . '' : Typed variable declaration : Method Invocation Connect.replaceAll.

共 (1) 个答案

  1. # 1 楼答案

    如果要使用String特定方法作为replaceAll,请将变量定义为String

    String Connect = vars.get("92_ConnectionToken");
    

    您需要将正则表达式特殊字符转义为+

    String ConnectToken = Connect.replaceAll("\\+", "%2B");
    

    正如@kumesana所评论的,您最好使用replace方法:

    String ConnectToken2 = Connect.replace("+", "%2B");