Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回字符串中元素的true的布尔语句直接跟随另一个元素_Java - Fatal编程技术网

Java 返回字符串中元素的true的布尔语句直接跟随另一个元素

Java 返回字符串中元素的true的布尔语句直接跟随另一个元素,java,Java,到目前为止,我还不熟悉java,自学成才。我想建立一个布尔语句,这样对于一些给定的单词文档,例如 (“Hello”,”world”,”my”,”name”,”is”,”Luke”) 如果给定字符串中的元素立即彼此跟随,则返回true,例如(“name”,“is”),而(“my”,“is”)返回false 我曾试图将文档分割成一组单独的单词,但我很难理解跟踪背后的逻辑,如果一个单词直接跟在另一个单词后面,并且输出true或false 到目前为止: var words=newstring[](“你

到目前为止,我还不熟悉java,自学成才。我想建立一个布尔语句,这样对于一些给定的单词文档,例如

(“Hello”,”world”,”my”,”name”,”is”,”Luke”)
如果给定字符串中的元素立即彼此跟随,则返回true,例如
(“name”,“is”)
,而
(“my”,“is”)
返回false

我曾试图将文档分割成一组单独的单词,但我很难理解跟踪背后的逻辑,如果一个单词直接跟在另一个单词后面,并且输出true或false

到目前为止:

var words=newstring[](“你好”、“世界”、“我的”、“我的名字”…);
如果(单词[0].equals(“hello”)&&words[1].equals(“world”)&&&……)

我不确定如何从这里开始。

您可以使用哈希映射数据结构来解决这个问题。将数字键分配给文档中的单词,然后可以检查与单词对应的键是否与与上一个单词对应的键连续。

至少如前所述,在Java中初始化字符串数组的代码时出现了一些问题。我修改了变量声明,并指出了Java代码中添加的一些其他内容。 但要回答你的问题,要检查连续的单词是否是你想要的,你需要做你想用手做的事情。查看单词[0]和单词[1]是否匹配您所寻找的内容。然后是单词[1]和单词[2]。最后是单词[n-2]和单词[n-1]。如果其中任何一项匹配,则结果为真。如果没有匹配项,则结果为false(默认值,如果存在匹配项,则翻转为true)。循环有助于对单词进行迭代(我选择了简单的“for”,但可以使用扩展的“for”或“while”)

公共类WordPairFinder{
公共静态void main(字符串参数[]){
//我将所有内容都改为小写,以便匹配不区分大小写,您可能需要明确说明wordOne.toLower()和wordTwo.toLower()
//当您创建此例程的方法时,wordOne和wordTwo将成为参数
String wordOne=“est”//请随意将其更改为test
String wordTwo=“labourum”;//同上
字符串notSplit="知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德圣奥卡塔人不自以为是,必须为自己的动物劳动负责。”;
String[]words=notSplit.replaceAll(“[^a-zA-Z]”),toLowerCase().split(“\\s+”);
//以上是来自https://stackoverflow.com/questions/18830813/how-can-i-remove-punctuation-from-input-text-in-java
布尔配对=假;
对于(inti=0;i
我不会给出代码,因为我不是java开发人员。我的想法是通过数组循环检查索引I处的单词是否匹配,以及I+1处的单词是否也匹配

for (i=0, i<array.count-1, i++){
   if (array[i] == firstWord && array[i+1] == secondword) {
        //here it is true
        break
    }
}

用于(i=0,这是新的,这不是正确的java语法?!@GhostCatSaletsMonicac。你确定吗?那么我该怎么做呢?首先:你确定你在这里用java编程吗?而且。我会先读一本反映你打算使用的java版本的好书或教程。对于初学者来说,字符串应该是大写的d您将使用{}而不是()关于这一点…@Ghostcatsallesmonicac。我正在使用bluej,因为我被告知这是初学者学习的最佳方式?这不是一个java问题。这是一个编程问题,我们应用不同的数据结构和算法来解决这些问题。也许可以用java学习一些问题解决课程。你可以在java==中的hackerrank、hackerearth等不会像人们认为的那样处理字符串。你想要。等于。我同意逻辑。是的,后来看到你的评论,它比我的要好得多,所以如果你在读这篇文章,看看Jeremy的回复,或者使用regexAll,我的意思是,我认为这个人使用var的方式会用不同的语言。但是你是对的,我不知道你甚至可以说“var”"在java中。谢谢你修复了这个错误印象。如果你认为我应该编辑答案,我会这样做。如果你认为注释足够了,我就不做了。请注意,
var
从java 10开始就可以使用。老实说,我个人不喜欢源代码中有这么多注释,但我认为:这纯粹是个人的样式;-)…现在好多了!嘿,我试着运行这个,我想我有一个错误,因为它每次都运行false,我的数据在一个哈希映射中,它是一个字符串,但我想我需要以某种方式将它转换成一个整数。当你说你的数据在哈希映射中时,你是说你的wordOne和WordII?也许你可以发布这部分代码?
for (i=0, i<array.count-1, i++){
   if (array[i] == firstWord && array[i+1] == secondword) {
        //here it is true
        break
    }
}