Android Studios break迭代器,只使用空格来中断文本



分解单词的代码

选择单词以更改它们,依此类推

以"发出他们的声音"为例,上面的代码将其分解为"发出">

我不想我想要整个"让他们发声",所以当做出改变时,我仍然可以记住以后在记忆中做出的改变并进行比较。

那么,基本上有什么方法可以使用break迭代器或只按空格进行分解的代码吗?

这里的代码也是

TextView definitionView=(TextView(findViewById(R.id.et_MainText(;

definitionView.setMovementMethod(LinkMovementMethod.getInstance());
definitionView.setText(definition, TextView.BufferType.SPANNABLE);
Spannable spans = (Spannable) definitionView.getText();
BreakIterator iterator = BreakIterator.getLineInstance(Locale.UK); // change this if you want word or what ever
iterator.setText(definition);
int start = iterator.first();

for (int end = iterator.next(); end != BreakIterator.DONE; start = end, end = iterator
.next()) {
String possibleWord = definition.substring(start, end);
if (Character.isLetterOrDigit(possibleWord.charAt(0)) ||checkPun(possibleWord.charAt(0)) ||checkSpace(possibleWord.charAt(0))) {
ClickableSpan clickSpan = getClickableSpan(possibleWord);
spans.setSpan(clickSpan, start, end,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
//Log.d("ClickableSpan", "init: " + start +" "+ end);
}
}

我知道它不好,但它可以

List listForStart;List listForEnd;

TextView definitionView=(TextView(findViewById(R.id.et_MainText(;

definitionView.setMovementMethod(LinkMovementMethod.getInstance());
definitionView.setText(definition, TextView.BufferType.SPANNABLE);
Spannable spans = (Spannable) definitionView.getText();

String T = definitionView.getText().toString();
listForStart = new ArrayList<String>();
listForEnd = new ArrayList<String>();
int testStart = 0;
for(int i = 0; i<T.length();i++){ //getting the list completed
if(T.charAt(i)==' '){ //found a space //go backwards unti
listForStart.add(Integer.toString(testStart));
listForEnd.add(Integer.toString(i));
//Log.d("TEST", "init: "+testStart+" "+i);
if(i+1 <T.length()){
testStart = i+1;
}else{break;}
}
}
for(int i = 0;i != listForStart.size();i++){
int start = Integer.valueOf(listForStart.get(i));
int end = Integer.valueOf(listForEnd.get(i));
String possibleWord = definition.substring(start,end);
if (Character.isLetterOrDigit(possibleWord.charAt(0)) ||checkPun(possibleWord.charAt(0)) ||checkSpace(possibleWord.charAt(0))) {
ClickableSpan clickSpan = getClickableSpan(possibleWord);
spans.setSpan(clickSpan, start, end,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
//Log.d("ClickableSpan", "init: " + start +" "+ end);
}
}

}

最新更新