20155308 2016-2017-2《Java程序设计》课堂实践项目

在java.lang包中有String.split()方法,返回是一个数组

我在应用中用到一些,给大家总结一下,仅供大家参考:

1、如果用“.”作为分隔的话,必须是如下写法,String.split("\."),这样才能正确的分隔开,不能用String.split(".");

2、如果用“|”作为分隔的话,必须是如下写法,String.split("\|"),这样才能正确的分隔开,不能用String.split("|");

“.”和“|”都是转义字符,必须得加"\";

3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如,“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");

使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。

我们看jdk doc中说明

参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码用竖线 | 分隔字符串,你将得不到预期的结果

String[] aa = "aaa|bbb|ccc".split("|");

    //String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果

    for (int i = 0 ; i <aa.length ; i++ ) {

      System.out.println("--"+aa[i]); 

    }

实践内容

  • 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:
  1. java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
  2. java MyCP -xt XXX1.bin XXX2.txt

    用来二进制文件把转化为文本文件(内容为十进制数字)

    提交测试代码和运行结果截图,加上学号水印,提交码云代码链接

代码

  • MyCP部分
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner; public class MyCP { public static void main(String[] args) throws IOException {
Scanner scan=new Scanner(System.in);
String str=scan.nextLine();
String[]Nstr=str.split(" "); if(Nstr[0].equals("-tx"))
{
FileReader reader = new FileReader(Nstr[1]);
FileWriter writer = new FileWriter(Nstr[2]);
CharUtiltx.dump(reader, writer);
} if(Nstr[0].equals("-xt"))
{
FileReader reader = new FileReader(Nstr[1]);
FileWriter writer = new FileWriter(Nstr[2]);
CharUtilxt.dump(reader, writer);
} }
}
  • 二进制文件转文本文件
import java.io.*;

public class CharUtiltx {
public static void dump(Reader src, Writer dest) throws IOException {
try(Reader input = src; Writer output = dest) {
char[] data = new char[1];
while((input.read(data)) != -1) {
int da=(int)data[0];
String str1="";
String str=Integer.toBinaryString(da);
for(int i=0;i<8;i++)
{
if(i<(8-str.length()))str1+='0'; }
str1+=str;
output.write(str1, 0, 8);
output.write(" ");
}
}
}
}
  • 文本文件转二进制文件
import java.io.*;

public class CharUtilxt {
public static void dump(Reader src, Writer dest) throws IOException {
try(Reader input = src; Writer output = dest) {
char[] data = new char[8];
char []ch = new char[1]; while((input.read(data)) != -1) {
String str="";
for(int i=0;i<8;i++)
{
str+=data[i];
}
int ten=Integer.valueOf(str,2);
ch[0]=(char)ten;
output.write(ch, 0, 1);
output.write(" ");
}
}
}
}

实验截图

码云链接

https://git.oschina.net/bestiisjava2017/java-besti-is-hwf/tree/master/src/Text/src?dir=1&filepath=src%2FText%2Fsrc&oid=d708726eee69807aa0053be49332287326994767&sha=f121aa19eeb8d38f779ab2954eec9efba5bcfb87

代码中所遇到的问题

问:如何输入命令使程序知道该执行的是文本文件转为二进制文件还是二进制文件转为文本文件?

解决:

利用数组把输入的三个字符串存储下来,split的方法完成

20155308 2016-2017-2《Java程序设计》课堂实践项目的更多相关文章

  1. # 20155308 2016-2017-2《Java程序设计》课堂实践项目 5月17日

    20155308 2016-2017-2<Java程序设计>课堂实践项目 5/17 本次因为git出现了问题,所以没有按时提交我的代码 问题一 在IDEA中对P145 MathTool.j ...

  2. 《Java 程序设计》课堂实践项目-Arrays和String单元测试

    <Java 程序设计>课堂实践项目-Arrays和String单元测试 课后学习总结 目录 改变 Arrays和String单元测试实验要求 课堂实践成果 课后思考 改变 修改了博客整体布 ...

  3. 20155322 《Java程序设计》课堂实践项目 数据库-3-4

    20155322 <Java程序设计>课堂实践项目 数据库-3-4 数据库-3 实践要求 参考教材代码完成下面的要求,提交能连接到world的截图(有学号水印),并提交代码的码云链接.查询 ...

  4. 20155322 《Java程序设计》课堂实践项目MyOD

    20155322 <Java程序设计>课堂实践项目MyOD 实践要求 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 提交测试代码和 ...

  5. 《Java 程序设计》课堂实践项目-命令行参数

    <Java 程序设计>课堂实践项目 课后学习总结 目录 改变 命令行参数实验要求 课堂实践成果 课后思考 改变 修改了博客整体布局,过去就贴个代码贴个图很草率,这次布局和内容都有修改.加了 ...

  6. 《Java 程序设计》课堂实践项目 课后学习总结

    <Java 程序设计>课堂实践项目 课后学习总结 String类的使用(sort) 目录 Linux命令(sort) 课堂实践 课后思考 学习老师的代码之后的思考:int与Integer ...

  7. 《Java 程序设计》课堂实践项目汇总链接

    1.<Java 程序设计>课堂实践项目-命令行参数 2.<Java 程序设计>课堂实践项目-mini dc 3.<Java 程序设计>课堂实践项目-Arrays和S ...

  8. 《Java 程序设计》课堂实践项目-类定义

    <Java 程序设计>课堂实践项目类定义 课后学习总结 目录 改变 类定义实验要求 课堂实践成果 课后思考 改变 修改了博客整体布局,过去就贴个代码贴个图很草率,这次布局和内容都有修改. ...

  9. 《Java 程序设计》课堂实践项目-简易计算器

    <Java 程序设计>课堂实践项目简易计算器 课后学习总结 目录 改变 简易计算器实验要求 课堂实践成果 课后思考 改变 修改了博客整体布局,过去就贴个代码贴个图很草率,这次布局和内容都有 ...

随机推荐

  1. Linux基础入门 - 3

    第四节 Linux 目录结构及文件基本操作 4-1.Linux目录结构 Linux 的目录与 Windows 的目录的实现机制是完全不同的.一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关 ...

  2. Oracle Golden Gate概要

    Oracle GoldenGate简介 Oracle Golden Gate用于源数据库与目标数据库的数据复制备份:可以在异构的环境(各种操作系统和数据库)之间实现数据亚秒级的实时复制备份:以及可以在 ...

  3. BZOJ2223/3524:[POI2014] Couriers(主席树)

    Description 给一个长度为n的序列a.1≤a[i]≤n. m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2.如果存在,输出这个数,否则输出0 ...

  4. 贪心——HDU-5969 最大的位或

    HDU-5969:http://acm.hdu.edu.cn/showproblem.php?pid=5969 一开始也是分了类,觉得要两种情况,l 与 r 位数相同与不同的情况,仔细想一下,可以一起 ...

  5. 31、springboot与任务

    异步任务 测试如下: 进行等待三秒在进行应答 @Service public class AsynService { public void hello(){ try { Thread.sleep() ...

  6. [Python 练习爬虫] XPATH基础语法

    XPATH语法: // 定位根标签 / 往下层寻找 /text() 提取文本内容 /@xxx 提取属性内容 Sample: import requests from lxml import etree ...

  7. Spring @Value 默认值

    @Value(value = "${etl.maxthreadcount:3}") private long MaxThreadCount;

  8. Dubbo实践(五)扩展Spring Schema

    先回顾Dubbo实践(一)中定义的dubbo-provider.xml: <?xml version="1.0" encoding="UTF-8"?> ...

  9. Maven下使用Junit对Spring进行单元测试

    主要步骤 1. 在工程的pom文件中增加spring-test的依赖: <dependency> <groupId>org.springframework</groupI ...

  10. Python KafkaProducer and KafkaConsumer的开发模块

    1.在python中往kakfa写数据和读取数据,使用的是python-kafka库 2.消费者需持续写入数据,因groupid存在偏移量,才能看看到数据. 3.安装库的命令为pip install ...