Java 使用indexOf(char)和substring(int,int)删除标记中的字符

Java 使用indexOf(char)和substring(int,int)删除标记中的字符,java,tags,substring,indexof,Java,Tags,Substring,Indexof,我试图找出如何编写调用的方法,使其不会打印介于之间的字符,基本上是在标记之间 我需要在while循环中使用:length(),indexOf(char)和子字符串(int,int) 以下是我所拥有的: import java.io.*; import java.util.*; public class Project { public static void main(String[] args) throws FileNotFoundException { // fi

我试图找出如何编写调用的方法,使其不会打印介于
之间的字符,基本上是在标记之间

我需要在while循环中使用:
length()
indexOf(char)
子字符串(int,int)

以下是我所拥有的:

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);
}

}
import java.io.*;
导入java.util.*;
公共类项目{
公共静态void main(字符串[]args)引发FileNotFoundException{
//最终字符串文本=”;
最终字符串filename=“HTML_2.txt”;
尝试(扫描仪输入=新扫描仪(新文件(
System.getProperty(“user.home”),“HTML_2.txt”){/“C:\CS210DataFiles”
while(input.hasNextLine()){
String text=stripHtmlTags(input.nextLine());
系统输出打印(stripHtmlTags(文本));
}
}
公共静态字符串读取文件(字符串文件名)引发FileNotFoundException{
扫描仪输入=新扫描仪(新文件(“HTML_2.txt”);
字符串文本=”;
while(input.hasNextLine()){
text+=input.nextLine()+“\n”;
}
返回文本;
}
公共静态void stripHtmlTags(字符串文件名)引发FileNotFoundException{
字符串文本=读取文件(文件名);
int leftTag=text.indexOf(“”);
text=start+text.substring(rightTag+1,text.length());
leftTag=text.indexOf(“这可能对您有所帮助

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;
}
public void printExceptTag(字符串str){
StringBuffer ans=新的StringBuffer();
对于(int i=0;i
方法
printExceptTag(String str)
获取一个字符串并打印跳过标记之间字符的字符串


谢谢。

你能给我们展示一下示例输入和预期输出吗?也许正则表达式可以帮助你?是的,请发布示例/输出。我不确定这个项目的输入是否会以这种方式结构化,但是如果<和>在两行上,stripHtmlTags方法将不起作用。不,正则表达式并简单地替换标记中的单词对我来说不管用。@JuliaBrosseau-但是,示例输入和预期输出是什么?没有I/O,人们如何回答?输入:我的网页这里有很多我的猫的照片,还有我非常酷的博客页面,其中包含了关于我拉斯维加斯之旅的精彩内容。

这是我的猫:你可以直接使用
toChar数组()
的字符串,然后也这样做。但是我看到了操作说明-在while循环中使用
length()、indexOf(char)和substring(int,int)。