【发布时间】:2012-03-05 10:02:39
【问题描述】:
我有一个字符串,我想在给定的索引处剪辑它。在场景中,字符串可能包含 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();
}
}
任何信息都会对我很有帮助。
谢谢。
【问题讨论】:
标签: java string word truncate html