结果输出了一大堆数字,想知道怎么改,或者是思路从根本上就错了?
import java.io.*;
public class TestChar
{
static int c;
public static void main(String[] args) throws Exception{
TestChar tc = new TestChar();
StringBuffer sb = tc.getSB();
try{
File file = new File("E:\\pages\\265\\265.htm");
FileReader fr = new FileReader(file);
while ((c=fr.read())!=-1)
{
char[] cc = {(char)c};
String s = new String(cc);
if(sb.indexOf(s)!=-1){
System.out.print(c);
}

}
fr.close(); 
}catch(IOException e){
e.printStackTrace();
}
} public static StringBuffer getSB(){
char c=0;
StringBuffer s = new StringBuffer();
for (int i = 32;i<126 ;i++ )
{
c = (char)i;
s.append(c);
}
return s;
}
}

解决方案 »

  1.   

    BufferedReader br=new BufferedReader(new FileReader(new File("E:\\pages\\265\\265.htm")));
    String string=null;
    StringBuilder sb=new StringBuilder();
    while((string=br.readln())!=null){
       sb.append(string);
       
    }
    br.close;
      

  2.   

    if(sb.indexOf(s)!=-1){
    System.out.print(c);
    } 应该是
    if(sb.indexOf(s)==-1){
    System.out.print(c);
    } ?????????????????????
      

  3.   

    char[] cc = {(char)c}; 
    ??????????
      

  4.   


    import java.net.*;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import java.io.*;
    public class UrlCodeRegex_2
    {
      public static void main(String[] args)
       {
        try 
        {
            String ur="file:///g:/265.htm"; 
            URL MyURL=new URL(ur);
            String str;
            URLConnection con=MyURL.openConnection();
            InputStreamReader ins=new InputStreamReader(con.getInputStream(),"gbk");
            BufferedReader in=new  BufferedReader(ins);
            StringBuffer sb = new StringBuffer();
            while ((str=in.readLine())!=null)
            {  
             sb.append(str);
            }
                in.close(); String s = sb.toString().replaceAll("[^\u4e00-\u9fa5]","");
    System.out.println(s);
         } 
        catch (IOException ioe) {
          System.out.println("IOException: " + ioe);
      
        }
      }
    }
      

  5.   

    可以比ASCII码吧,找到中问段的码值
      

  6.   


    感谢三楼。的确是这样的。改成
    if(sb.indexOf(s)==-1){ 
    System.out.print((char)c); 
    }  后,果然可以把一个文件中所有的汉字提出来了,呵呵。
    5楼的代码试了有点问题,报一个IOEception
      

  7.   

    写这段代码的基本思路这样的,从ASCII码表中找出32-126(包含了大小写英文字母,数字及特殊字符)构建一个StringBuffer,从文件中一个一个字符读出来,如果不在这个StringBuffer里,就一定是汉字字符。检查是否包含的方法我实现的很笨。 因为想用StringBuffer的indexOf()方法,把一个字符硬是搞成字节数组再转成
    String,这就这两句:char[] cc = {(char)c};  String s = new String(cc); (回四楼)简单修改后可以用这段代码把一个html文件里汉字提取出来,我打算想想最终做一个东西,功能是: 打开一个网页后
    把里面的汉字提取出来,替换成广告再写回去。嘿嘿。
      

  8.   

    报IO异常,老大啊,你不会自己设置一些路径啊String ur="file:///E:/pages/265/265.htm";