当前位置: 代码迷 >> J2SE >> 请教java中怎么从一个文件中的读取一个已确定存在的字符串后面的字符
  详细解决方案

请教java中怎么从一个文件中的读取一个已确定存在的字符串后面的字符

热度:58   发布时间:2016-04-24 01:54:05.0
请问java中如何从一个文件中的读取一个已确定存在的字符串后面的字符
比如说一个文件中以确定存在一个单词,我想读取该单词后面的字符,请问java中该如何操作?

------解决方案--------------------
Java code
String str="asdfcomasdf";//读取com后面的字符串str=str.subString(str.indexOf("com"),str.length());
------解决方案--------------------
Java code
String str="hello world,world peace,world";//读取com后面的字符串        String key = "world";        int pos = -key.length();        while((pos=str.indexOf("world", pos+key.length())) != -1){            if(pos+key.length()<str.length())                System.out.println(str.charAt(pos+key.length()));            else if(pos+key.length()==str.length())                System.out.println("文件尾");        }
------解决方案--------------------
Java code
public class Test {        public static void main(String[] args) throws IOException {        File file = new File("1.txt");        FileReader fr = new FileReader(file);        char buf;        boolean locate = false;                String match = "world";        char[] pattern = match.toCharArray();                StringBuilder sb = new StringBuilder();                while(fr.ready()) {            buf = (char)fr.read();                        if(!locate && buf == pattern[0]) {                locate = testChar(buf,fr, pattern,0);                if(fr.ready())                    buf = (char)fr.read();                else                    break;            }                        if(locate)                sb.append(buf);        }                System.out.println(sb.toString());                fr.close();    }        public static boolean testChar(char now,FileReader fr,char[] pattern,int pos) throws IOException {        if(pos == pattern.length - 1)            return true;                if(fr.ready()) {            if(now == pattern[pos])                return testChar((char)fr.read(),fr, pattern, pos+1);            else                return false;        } else {            return false;        }    }}
------解决方案--------------------
自己玩的话
一行一行indexof就行了
考虑多的话
比如说单词可以跨行,又或者你要寻找的文件比较大
确定的字符串又贼长。。。
可以再考虑下性能问题
用kmp或类似的东西来搞
ps:
indexof我记得上直接找的
  相关解决方案