-2

我正在尝试使用 java 从代码块(本质上是一个长字符串)中选择第一行。我目前正在使用纯 java 执行此操作,但这似乎很笨拙。如果可能的话,我想尝试使用正则表达式来代替。

我的代码目前看起来像:

int firstSpace = code.indexOf("package ");
String pac = code.substring(firstSpace);
pac = pac.replace("package ", "");
int endOfPac = pac.indexOf('\n');
pac = pac.substring(0,endOfPac);
String codeExpr = "result=data." + pac.trim() + ".resultObject";

代码字符串如下所示:

String code = "package pac.regoFile\n some code"

我需要的codeExpr的最终结果是:

result=data.pac.regoFile.resultObject
4

1 回答 1

0

您可以使用 Pattern 和 Matcher 来实现这一点。根据您的输入 str,可以使用以下内容。

        Pattern p = Pattern.compile("^package (.*)?");
        Matcher m = p.matcher(code);
        if( m.find() ) {
            String pkg = m.group(1);
            String codeExpr = "result=data." + pkg.trim() + ".resultObject";
        }
于 2022-01-31T14:52:23.897 回答