原始代码

package test;
import java.io.*;
//g)显示第1000个字节后的第一个完整单词。(可选题)
public class Filedemo04 {public static void main(String[] args) throws IOException{FileInputStream fis = new FileInputStream("hohai.txt");byte[] bytes = new byte[35];  // 两个单词长度不超过35byte b;int i = 0, j = 0, count = 0;// 跳过前999个字节fis.skip(999);/*int len = (int)fis.skip(999);System.out.println(len);  // 实际跳过字节数*/// 将第1000个字节及之后34个字节记录fis.read(bytes);for(int k=0; k<35; k++){b = bytes[k];// 从第1000个字节开始,找出首次满足的两个非字母的字节位置// 即第1000个字节后,首个完整字母的起始位置-1与结束位置+1if(!((b>='A' && b<='Z') || (b>='a' && b<='z'))){count ++;if(count == 1)i = k+1;if(count==2){// 出现两相邻的非字母时if((k-i)==0){i = k;  // 更新icount --;  // 恢复countcontinue;}j = k-1;break;}}}// 以下是第1000--1034个字节结果输出,用于检验答案System.out.print("第1000--1034个字节结果输出,用于检验答案:   ");System.out.println(new String(bytes));// 以下是答案输出System.out.print("第1000个字节后的第一个完整单词是:");System.out.println(new String(bytes, i, j-i+1));}}

代码改进(在更新的地方把k=i改成k=i+1)

import java.io.*;
public class P1_g {public static void main(String[] args) throws IOException{FileInputStream fis = new FileInputStream("hohai.txt");byte[] bytes = new byte[35];  // 两个单词长度不超过35byte b;int i = 0, j = 0, count = 0;// 跳过前999个字节fis.skip(999);/*int len = (int)fis.skip(999);System.out.println(len);  // 实际跳过字节数*/// 将第1000个字节及之后34个字节记录fis.read(bytes);for(int k=0; k<35; k++){b = bytes[k];// 从第1000个字节开始,找出首次满足的两个非字母的字节位置// 即第1000个字节后,首个完整字母的起始位置-1与结束位置+1if(!((b>='A' && b<='Z') || (b>='a' && b<='z'))){count ++;if(count == 1)i = k+1;if(count==2){// 出现两相邻的非字母时if((k-i)==0){i = k+1;  // 更新i  在这里改进提高效率count --;  // 恢复countcontinue;}j = k-1;break;}}}// 以下是第1000--1034个字节结果输出,用于检验答案System.out.println(new String(bytes));// 以下是答案输出System.out.println(new String(bytes, i, j-i+1));}
}

用Java实现输入一个英语文本输出第1000个字节后的第一个完整单词相关推荐

  1. JAVA实现输入一个整数,输出该数二进制表示中1的个数(《剑指offer》)

    题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 这个题目有个比较有意思并且被公认的解法,我就先贴答案吧: public class Solution {public int ...

  2. Java键盘输入一个数字, 输出其绝对值

    import java.util.Scanner;public class JueDuiZhi {public static void main(String[] args) {Scanner sc ...

  3. java输入一个数字输出_java 输入一个数字,反转输出这个数字的值(实现方法)

    如下所示: package 第四天; import java.util.Scanner; public class 数字反转 { public static void main(String[] ar ...

  4. 经典Java题目:输入一个数字,输出它的大写汉字(阿拉伯数字转汉字)

    写在前面 无意间看到一个Java题目,觉得挺有意思,就拿出来和大家分享: 输入一个数字,输出它的大写汉字. 就像这样: 这算是一个有趣的题目了.但是早前我Java基础特别差就没能实现它. 当然,这次我 ...

  5. Java学习之编写实现简单加密的程序,要求从键盘输入一个字符,输出加密后的字符。

    案例介绍: 编写实现简单加密的程序,要求从键盘输入一个字符,输出加密后的字符. 加密规则:输入A,输出Z;输入B,输出Y:输入a,输出z;输入b,输出y. 案例代码: import java.io.* ...

  6. java中怎么让一个数倒转_java 输入一个数字,反转输出这个数字的值(实现方法)

    java 输入一个数字,反转输出这个数字的值(实现方法) 如下所示: package 第四天; import java.util.Scanner; public class 数字反转 { public ...

  7. 创建窗口,输入一个无符号整数,输出其对应的二进制数

    创建窗口,输入一个无符号整数,输出其对应的二进制数 package p1; //打印无符号整数位 import java.awt.*; import java.awt.event.*; import ...

  8. 用switch,case 输入一个数字,输出相对应的福娃的名字

    package p1; import java.util.Scanner; /**     auther:xiuran-hua      function:用switch,case 输入一个数字,输出 ...

  9. 【问题描述】3.1.5 用整数1~7依次表示星期一至星期日。由键盘输入一个整数,输出对应的英文表示,如果输入的整数在1~7之外,输出“Error”信息。【样例输入1】1【样例输出1】Monda

    [问题描述]3.1.5 用整数1~7依次表示星期一至星期日.由键盘输入一个整数,输出对应的英文表示,如果输入的整数在1~7之外,输出"Error"信息. [样例输入1]1 [样例输 ...

最新文章

  1. 影像组学视频学习笔记(29)-ICC的计算、Li‘s have a solution and plan.
  2. html如何打包压缩,所有css打包压缩到一个js里面
  3. 计算机与交通工程论文,交通工程论文.doc
  4. Spring启动时的Spring社交示例,或者我如何不再担心和喜欢自动配置
  5. java word转图片tiff_Word 2010中将文档保存为TIFF图片的方法
  6. 跨境电商独立站模式解析与机会分析?
  7. Docker(二十九)k8s 创建动态存储,基于nfs 的storageclass
  8. 【图像分割】基于matlab遗传算法道路图像分割【含Matlab源码 779期】
  9. excel if判断单元格是否为空否求和_Excel基础函数IF的7个使用技巧,绝不是简单的判断哦!...
  10. 软件密码模块安全要求
  11. 怎么查询Mysql数据库的版本号?(2种常用的方法)
  12. Go Module使用 六大场景讲解示例
  13. 怎么把钉钉的文件导入电脑_钉钉文件怎么保存到电脑
  14. 618战局天猫聚焦“商家体验”,创造确定性增长是核心目标
  15. JECloud快速入门手册_【数据字典】
  16. 获取微信二维码返回乱码
  17. 12亿次月访问流量网站服务器架构探秘
  18. Planned Delivery Time Calculation
  19. 【matlab 播放音乐】教你如何用matlab播放音乐
  20. 读完这篇,让你真正理解Redis持久化

热门文章

  1. oracle中before,Oracle中Before和After触发器的例子
  2. python中mod运算符_Python中的数学运算操作符使用进阶
  3. Bugku-CTF之flag在index里
  4. 从一个数组中找出 N 个数,其和为 M 的所有可能--最 nice 的解法
  5. C# 操作Excel
  6. 大数相乘、大数相加、大数相减Java版本
  7. Spring Autowired 注入失败总是Null
  8. SortedDictionaryTKey, TValue 类 表示根据键进行排序的键/值对的集合。
  9. 8.8线段树和树状数组
  10. HDOJ-1062 Text Reverse