我在下面有这个C#静态函数,它接受一个MatchCollection,一个输入字符串和一个要搜索的模式。 MathCollection通过引用传递,因此要使用它我不必两次运行匹配。我可以这样使用它:
MatchCollection matches = new MatcchCollection();
string pattern = "foo";
string input = "foobar";
if (tryRegMatch(matches, input, pattern) { //do something here}
public static boolean tryRegMatch(out MatchCollection match, string input, string pattern)
{
match = Regex.Matches(input, pattern);
return (match.Count > 0);
}
问题是,是否有可能在Java中执行此操作我已阅读了几篇文章,其中声明Java是按值传递的(保持简单)。默认情况下,C#是,但您可以使用' out'修饰符使其通过引用传递。我正在做很多匹配,这会使编码更简单,否则我必须运行匹配然后单独测试它才能成功。
答案 0 :(得分:1)
没有。但是你可以通过简单地包裹对象来近似参考习语。
class MatchRef
{
public MatchCollection match;
}
public static boolean tryRegMatch(MatchRef matchRef, string input, string pattern)
{
matchRef.match = Regex.Matches(input, pattern);
return (matchRef.match.Count > 0);
}