Java:在While循环中嵌入Equals语句

Java:在While循环中嵌入Equals语句,java,apache,while-loop,opennlp,Java,Apache,While Loop,Opennlp,我想知道是否有人可以向我解释下面这行代码的作用 while((sample=samples.read())!=null) 它是否首先将sample设置为下一行samples,然后检查以确保它不是空的 这是一个更一般的问题,但如果有人有一个好的OpenNLP教程,我也会非常感激 以下是整个方法: 公共静态字典buildNGramDictionary(ObjectStream示例,int-cutoff)引发IOException{ NGramModel ngramModel = new N

我想知道是否有人可以向我解释下面这行代码的作用

while((sample=samples.read())!=null)

它是否首先将
sample
设置为下一行
samples
,然后检查以确保它不是空的

这是一个更一般的问题,但如果有人有一个好的OpenNLP教程,我也会非常感激

以下是整个方法:


公共静态字典buildNGramDictionary(ObjectStream示例,int-cutoff)引发IOException{

    NGramModel ngramModel = new NGramModel();
    POSSample sample;

    while((sample = samples.read()) != null) {
        String[] words = sample.getSentence();
        if (words.length > 0)
            ngramModel.add(new StringList(words), 1, 1);
    }

    ngramModel.cutoff(cutoff, Integer.MAX_VALUE);
    return ngramModel.toDictionary(true);
}

  • 它将
    samples.read()
    的返回值分配给
    sample
    变量
  • 它验证
    sample
    是否不为null,然后才执行while循环的主体
  • 它将
    samples.read()
    的返回值分配给
    sample
    变量
  • 它验证
    sample
    是否不为null,然后才执行while循环的主体

  • 表达式的计算取决于。

    首先计算括号内的表达式
    (sample=samples.read())
    ,因为
    ()
    括号的优先级高于
    !=



    括号内的表达式
    (sample=samples.read())
    首先求值,因为
    ()
    方括号的优先级高于
    !=

    是的,它正是它所做的。
    =
    操作,除了设置LHS,计算结果是RHS的值。是的,它正是它所做的。
    =
    操作,除了设置LHS,计算结果是RHS的值。