我有一个字符串,我想将它剪辑到给定的索引处。在这种情况下,字符串可能包含 HTML 标签,我必须在剪辑时跳过这些标签。
例如,如果字符串是:
"Les pirates ont<br/>attaqué des douzaines de sites Web français";
我想将其剪辑为 25,这样我就可以获得 Les pirates ont<br/>attaqué...
。另外,我无法从中间切片单词,在剪切时,如果我发现剪切点处的字符不是空格,那么我必须从该点回溯字符串,直到找不到空格为止。如果找到任何空间,那么我将剪切到该索引。
这是我尝试过的代码,但它无限循环:
public class Test {
private String value = "Les pirates ont<br/>attaqué des douzaines de sites Web français";
private int clipAt = 25;
public Test() {
run();
}
private void run() {
String elipsis = "...";
int originalLength = value.length();
int cliplength = clipAt - elipsis.length();
String clipedValue = value;
if (originalLength > cliplength) {
char character = value.charAt(cliplength + 1);
while (character != ' ') {
if(character == '>'){
cliplength += count(value.substring(0, cliplength+2));
}
cliplength = cliplength - 1;
character = value.charAt(cliplength + 1);
}
clipedValue = value.substring(0, cliplength + 1)+elipsis;
}
System.out.println(clipedValue);
}
private int count(String str){
int length = str.length() - 1;
char character = str.charAt(length);
int count = 0;
while(character != '<'){
length--;
character = str.charAt(length);
count++;
}
System.out.println(count);
return count;
}
public static void main(String... args){
new Test();
}
}
任何信息都会对我非常有帮助。
谢谢。
最佳答案
解析 html 并不是一件容易的事。 HTML 不是常规语言,因此正则表达式无法帮助您...... 但是您可能会发现htmlunit有帮助。另请检查the options for HTML scrapping
祝你好运!
关于java - 将字符串剪切到给定索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9564745/