gpt4 book ai didi

java - Java中使用边界查找多个子字符串

转载 作者:行者123 更新时间:2023-12-01 07:35:46 25 4
gpt4 key购买 nike

好吧,这就是我的问题。基本上我有一个包含 4 个单词的字符串,每个单词用 # 分隔。我需要做的是使用 substring 方法提取每个单词并将其打印出来。但我在弄清楚它的参数时遇到了困难。第一个我总能做对,但后面的一般都会有问题。这是第一段代码:

word = format.substring( 0 , format.indexOf('#') );

现在,根据我的理解,这基本上意味着从字符串的开头开始,并在 # 之前结束。因此,使用相同的逻辑,我尝试提取第二个单词,如下所示:

wordTwo = format.substring ( wordlength + 1 , format.indexOf('#') ); 
//The plus one so I don't start at the #.

但是这样我就不断收到错误,说它不存在。我认为编译器试图读取第二个单词之前的第一个 #,所以我像这样重写了它:

wordTwo = format.substring (wordlength + 1, 1 + wordLength + format.indexOf('#') );

这样一来,它就完全搞砸了,要么不打印第二个单词,要么没有停在正确的位置。如果我能在格式化方面获得任何帮助,我将不胜感激。由于这是针对一个类的,因此我只能使用非常基本的方法,例如indexOf、length、substring等。因此,如果您可以避免使用任何复杂的方法,那就太棒了!

最佳答案

如果您必须使用子字符串,那么您需要使用 variant of indexOf that takes a start 。这意味着您可以通过在第一个搜索之后开始搜索来开始查找第二个#。 IE。

wordTwo = format.substring ( wordlength + 1 , format.indexOf('#', wordlength + 1 ) );

然而,还有更好的方法可以像这样在分隔符上分割字符串。您可以使用 StringTokenizer 。这是为像这样分割字符串而设计的。基本上:

StringTokenizer tok = new StringTokenizer(format, "#");
String word = tok.nextToken();
String word2 = tok.nextToken();
String word3 = tok.nextToken();

或者您可以使用 String.split专为分割字符串而设计的方法。例如

String[] parts = String.split("#");
String word = parts[0];
String word2 = parts[1];
String word3 = parts[2];

关于java - Java中使用边界查找多个子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12434604/

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