У меня есть строка, и я хочу обрезать ее по заданному индексу.В этом сценарии строка может содержать тег 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();
}
}
Любая информация будет очень полезна для меня.
Спасибо.