gpt4 book ai didi

java - 将我的组的长度返回给我的 int

转载 作者:行者123 更新时间:2023-12-01 06:05:05 27 4
gpt4 key购买 nike

package files;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex {
public static String arr[];
public static void main(String[] args) throws Exception {

String fiveFour="kkkkaaaaa";
String condition="[a]{5}|[k]{1}";
int size=0;
regTest(condition,fiveFour,size);
System.out.println(size);



}

public static int regTest(String regexThing, String toCheck, int size){
Pattern pattern= Pattern.compile(regexThing);
Matcher regexMatcher= pattern.matcher(toCheck);

int i=0;

while(regexMatcher.find()){
i++;
System.out.println(regexMatcher.group());
if(regexMatcher.group().length()!=0){
System.out.println(regexMatcher.group().length());



}


}

return i;

}
// work on return try maybe a increment and returning that at the end!
//stacks

}

我在返回我的regexMatcher.group().length()时遇到问题,在我的sop中它打印出5,这是正确的。但是它不会将该值分配给大小,因此我可以返回它。有什么帮助吗?这是一个逻辑错误,我不知道哪里出了问题。

package files;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex {
public static String arr[];
public static void main(String[] args) throws Exception {
String fiveFour="kkkkaaaaa";
String condition="[a]{5}|[k]{1}";
int size=0;
regTest(condition,fiveFour,size);
System.out.println(size);
}

public static int regTest(String regexThing, String toCheck, int size){
Pattern pattern= Pattern.compile(regexThing);
Matcher regexMatcher= pattern.matcher(toCheck);

int i=0;

while(regexMatcher.find()){
i++;
System.out.println(regexMatcher.group());
if(regexMatcher.group().length()!=0){
System.out.println(regexMatcher.group().length());
i++;
}
}
return size;
}
// work on return try maybe a increment and returning that at the end!
//stacks
}

最佳答案

您永远不会将 regexMatcher.group().length() 的结果分配给 size

因此,您需要更改两件事,第一件事是在您的方法中,您要添加:

size = regexMatcher.group().length();

现在,regTest 方法内 size 的值为您期望的 5。但是,由于 Java 按值传递基元(有关其含义的更多说明,请参阅 this question),这意味着您传递给方法的 sizesize 不同。 code> 在 main 方法中,所以你有更多的事情要做。

您从方法中返回 size,因此在调用方中,您可以将其分配给原始 size 变量,例如:

size = regTest(condition, fiveFour, size);

现在,因为您实际上从未在 regTest 方法中使用 size 参数,所以您实际上不需要传入它,因为您实际上只关心将其作为返回值,因此在您的 main 方法中使用它可能会更清晰:

int size = regTest(condition, fiveFour);

然后在 regTest 方法中,完全删除 size 并只得到:

return regexMatcher.group().length();

关于java - 将我的组的长度返回给我的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46860006/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com