Я пытаюсь отфильтровать строку и оставить только определенные фразы, пытаясь разработать любительскую программу проверки синтаксиса для кода. Например:

String line = "<html><head><title>HELLO WORLD</title></head><body>Hello WorldMy name is Ricardo i hope you are all doing good</body></html>";

String[] splitt = line.split("\\<html>|\\</html>|\\<head>|\\</head>|\\<title>|\\</title>|\\<body>|\\</body>");

    for (String split: splitted) {
        System.out.println(split);
    }
}

Я хочу забрать все жетоны, такие как <html>, </html>, <title>, </title> и с кодом там я получаю совершенно противоположное, в основном отфильтровывая то, что я хочу.

Заранее спасибо! Я весь день напрягался, пытаясь понять это.

0
Ricardo Ruvalcaba 26 Сен 2018 в 09:01

2 ответа

Лучший ответ

Если вы ищете определенные фразы в строке, вы можете использовать java Regex, чтобы найти желаемый результат. Просто создайте регулярное выражение желаемой строки и используйте его как.

Pattern pattern=Pattern.compile("Your Regex");  
Matcher matcher=pattern.matcher("Source String");

 while (matcher.find())                    // true if matches
    {
     System.out.println(matcher.group());  //prints string token  
    }

В настоящее время вы используете разделение (регулярное выражение), которое разбивает строку по заданному регулярному выражению, поэтому он опускает разделитель <html>,</html> и т. Д.

2
Tarun 26 Сен 2018 в 06:22

Попробуйте следующий фрагмент кода.

String line = "<html><head><title>HELLO WORLD</title></head><body>Hello WorldMy name is Ricardo i hope you are all doing good</body></html>";
ArrayList<StringBuffer> list = new ArrayList<StringBuffer>(); 
for(int i=0; i<line.length();i++)
{
  if(line.charAt(i)=='<')
  {
    StringBuffer str = new StringBuffer();
    while(line.charAt(i)!='>')
    {
      str.append(line.charAt(i));
      i++;
    }
    str.append('>');
    list.add(str);
  }
}

Iterator<StringBuffer> itr = list.iterator();
while(itr.hasNext())
System.out.println(itr.next());

Вы можете изменить код, поместив строки в ArrayList на свою логику.

Надеюсь, я помог с вашим кодом.

0
Varun Jain 26 Сен 2018 в 07:24