【发布时间】:2020-09-16 02:55:47
【问题描述】:
我正在尝试突出显示 Matcher 找到的 JavaFX 中的一个单词,并且每当有新单词时,我都想突出显示该新单词。 这可能吗? 这是我的代码:
String s1 = displayArea.getText();
String s2 = textInputArea.getText();
Pattern p = Pattern.compile("[a-zA-Z]*[^\\s]");
Matcher m1 = p.matcher(s1);
Matcher m2 = p.matcher(s2);
int counter=0;
System.out.println("Words from string \"" + s1 + "\" : ");
while (m1.find() && m2.find() ) {
System.out.println("Found words: "+m1.group()+ " Typed words: "+m2.group() );
//m1.group() needs to be highlighted and displayed in textarea
if (m1.group().equals(m2.group())){
counter++;
System.out.println("counter:"+counter );
}else if (!(m1.group().equals(m2.group())) && typedKey==' '){
negativni++;
System.out.println("negativni:"+ negativni );
}
}
【问题讨论】:
-
您是否有要突出显示单词的 TextArea?如果是,您可能想看看这个:stackoverflow.com/questions/9128535/…
-
这完全取决于“突出显示”的含义以及显示字符串的方式。虽然我不明白第一句话的后半部分。不知道为什么你想用循环做什么。您正在并行遍历两个字符串。也不确定
typedKey是什么;顺便说一句m1.group().equals(m2.group())产生false,如果它确实产生false,你不需要再次检查。由于group()的结果没有改变,你应该已经知道结果了...
标签: java regex javafx text textarea