gpt4 book ai didi

java - 使用indexOf(char)和substring(int, int)删除标签内的字符

转载 作者:行者123 更新时间:2023-11-30 07:34:49 25 4
gpt4 key购买 nike

我试图弄清楚如何编写调用的方法,该方法不会打印 < 之间的字符。和> - 基本上在标签之间。

我需要使用:length() , indexOf(char)substring(int, int)在 while 循环中。

这是我所拥有的:

import java.io.*; 
import java.util.*;

public class Project {


public static void main(String[] args) throws FileNotFoundException {
// final String text = "";
final String filename = "HTML_2.txt";


try (Scanner input = new Scanner(new File(

System.getProperty("user.home"), "HTML_2.txt"))){ //"C:\CS210DataFiles"

while (input.hasNextLine()) {
String text = stripHtmlTags(input.nextLine());
System.out.print(stripHtmlTags(text));
}
}

public static String readFile(String filename) throws FileNotFoundException {
Scanner input = new Scanner(new File("HTML_2.txt"));
String text = "";
while (input.hasNextLine()) {
text += input.nextLine() + "\n";
}
return text;
}
public static void stripHtmlTags(String filename) throws FileNotFoundException {
String text = readFile(filename);
int leftTag = text.indexOf("<");
while (leftTag >= 0) {
String start = text.substring(0, leftTag);
text = text.substring(leftTag, text.length());
int rightTag = text.indexOf(">");
text = start + text.substring(rightTag + 1, text.length());
leftTag = text.indexOf("<");
}
System.out.print(text);
}

}

现在主方法出了问题

最佳答案

这可能对你有帮助

public void printExceptTag(String str) {
StringBuffer ans= new StringBuffer();
for(int i= 0; i < str.length(); i++) {
char ch= str.charAt(i);
if(ch == '<') {
i= skipInBetweenTag(str, i);
continue;
}
ans.append(ch);
}
System.out.println(ans);
}

public int skipInBetweenTag(String str, int index) {
while(index < str.length() && str.charAt(index) != '>') index++;
return index;
}

方法 printExceptTag(String str) 接受一个字符串并打印该字符串,跳过标签之间的字符。

谢谢你..

关于java - 使用indexOf(char)和substring(int, int)删除标签内的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35546415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com