忽略字符串的特殊字符和html代码,并将单词存储到表的一列中

时间:2013-03-26 12:32:25

标签: java string stringtokenizer

我有一个代码,

import java.util.*;
import java.util.Scanner;
import java.util.StringTokenizer;
class CountWords{
    public static void main(String[] args) 
    {
        Scanner input=new Scanner(System.in);
        System.out.print("Enter string: ");
        String st=input.nextLine();
        int count=0;
        StringTokenizer stk=new StringTokenizer(st," ");
        while(stk.hasMoreTokens()){
            String token=stk.nextToken();
            count++;
        }
        System.out.println("Number of words are: "+count);
    }
}

我有一个要求输入为字符串之类的     “这是!@ *文本做()女士#$分为字。”

O / P: -

Number of words are: 10

我必须算不上。字符串的单词通过忽略字符串的特殊字符并存储到表列中,并将单词的反向存储在另一个表列中(忽略字符串中的特殊字符)

sno    words     reverse
----   ------   --------
1       This      sihT
2       Is         sI
3       the       eht  
4       text      text 

所以....... 如果字符串中有回文,那么将这些单词保存在单独的表中,如

word   palindrome
----   ---------
did     did
madam   madam

提前致谢

2 个答案:

答案 0 :(得分:0)

处理凌乱的HTML很麻烦。使用HTML清理实用程序(例如HtmlCleaner)为您完成工作。

答案 1 :(得分:0)

public static void main(String[] args) {
    String str = "This is the!@* text to be in words.";
    str = str.replaceAll("[^a-zA-Z0-9 ]+", "");
    System.out.println(str);
    int len = str.split("\\s+").length;
    System.out.println(len);
}

我假设特殊字符不是字母和数字。

输出:

This is the text to be in words
8