求助!!!如何提取文本中指定位置的内容?

sufangzhong 2008-03-01 02:21:41
一个文本文件,里面为英文文章。
如 It is a nice day. But I don't like it.
如果要指定提取该文本中指定位置的内容,怎么处理?
比如 a nice day对应的字符位置是6到15,反过来怎么根据6,15这个指定范围提取出来a nice day?
感觉如果熟悉数据流操作应该很简单,但是我对这个不熟,先谢谢大家的帮助。
...全文
238 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SINODATA_QJF 2008-03-01
  • 打赏
  • 举报
回复
这样求出来的结果才是 from至to 个字节的结果:)
SINODATA_QJF 2008-03-01
  • 打赏
  • 举报
回复
不好意思,以上代码段求出的是15个字节的内容
循环内的语句应该为:


for ( int i = 0; i < to-from+1; i++ ) {
sb = sb.append((char)raf.readByte());
}
临远 2008-03-01
  • 打赏
  • 举报
回复
直接上regex啊。提取文本内容,然后正则匹配提取。
SINODATA_QJF 2008-03-01
  • 打赏
  • 举报
回复

/**
*楼主所要实现的功能可以通过RandomAccessFile来实现
*即可以通过RandomAccessFile对象跳过FROM个字节,直接
*从FROM+1处的字节出开始读取所需的TO个字节
*下面假设楼主的TXT文件名为characters.txt,文件放置在
*D盘目录下
*/

import java.io.*;

public class RandomReadFile{
private static RandomAccessFile raf = null;
private static StringBuffer sb = null;
public static String getRandomBytes(int from,int to){
try{
raf = new RandomAccessFile("D:\\characters.txt","r");
raf.skipBytes( from );
sb = new StringBuffer();
String randomString = "";
for ( int i = 0; i < to; i++ ) {
sb = sb.append((char)raf.readByte());
}
raf.close();
}catch(FileNotFoundException fnfe){
fnfe.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}

return sb.toString();
}

public static void main(String[] args){
System.out.println(""+RandomReadFile.getRandomBytes(6,15));
}
}
老紫竹 2008-03-01
  • 打赏
  • 举报
回复
你确认位置是固定的吗?如果是
1 java里面的
String str = ".......";
String ss = str.substring(6,15);


2 SQL 里面一边叫 substr
select substr(Text_Field,6,15) from myTable 。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧