首页 > 其他分享 >2-27学习总结

2-27学习总结

时间:2023-02-27 18:25:02浏览次数:32  
标签:总结 文件 27 System 学习 println new txt out

今天学习了英语单词接龙的代码程序。发现了打代码难的不是代码本身,而是打代码的思路。

/*
* 6.6实验:单词接龙
* 第一阶段:读取txt中简单的9个单词
* 第二阶段:判断1.如果只有一个单词报错,2.文件为空报错
* 本节课实现第一阶段;
*
* 1.读入input文件
* 2.输出output文件
* 3.找到第一个单词的尾字母
* 4.遍历 找到相同首字母的单词
* 5.依次遍历
* 6.找最长单词链
*
*
*/
package ctn;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class ctn1 {
public static void main(String []srgs){

File file = new File("D:\\idea\\01\\input1.txt");
System.out.println("判断文件格式是否正确:");
if(file.exists() && file.length() == 0) {
System.out.println(" 文件为空!");
System.exit(0);
} else if(oneWord()){
System.out.println(" 文件只有一個單詞!");
System.exit(0);
}else{
System.out.println(" 文件内容有效。");
achieve();
}
}


/*
* 判断只有一个单词
*/
public static boolean oneWord(){
ArrayList<String> list = new ArrayList<String>();
String pathname = "D:\\idea\\01\\input1.txt";
int i = 0;
try (
FileReader reader = new FileReader(pathname);
BufferedReader br = new BufferedReader(reader)
// 建立一个对象,它把文件内容转成计算机能读懂的语言
) {
String line;
//网友推荐更加简洁的写法
while ((line = br.readLine()) != null) {
// 一次读入一行数据
list.add(line);
i++;
}
} catch (IOException e) {
e.printStackTrace();
}
if(i<=1){
return true;
}else{
return false;
}
}

/*
* 获取单词首尾字母的方法
*/
public static void print(){
String a = "sadfg";
System.out.println(a.substring(0,1));//获取首字母
System.out.println(a.substring(a.length()-1,a.length()));//获取尾字母
}


/*
* 读取txt文件,并且存到ArrayList集合中,找出接龙单词 存入ArrayList1集合,
* 把ArrayList1集合写入output1文件
*/
public static void achieve() {
ArrayList<String> list = new ArrayList<String>();
ArrayList<String> list1 = new ArrayList<String>();//存储遍历结果

String pathname = "D:\\idea\\01\\input1.txt"; // 绝对路径或相对路径都可以,写入文件时演示相对路径,读取以上路径的input.txt文件
String writename = "D:\\idea\\01\\output1.txt";
//防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw;
//不关闭文件会导致资源的泄露,读写文件都同理
//Java7的try-with-resources可以优雅关闭文件,异常时自动关闭文件;详细解读https://stackoverflow.com/a/12665271
try (FileReader reader = new FileReader(pathname);
BufferedReader br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言
FileWriter writer = new FileWriter(writename);
BufferedWriter out = new BufferedWriter(writer)
) {
String line;
//网友推荐更加简洁的写法
// System.out.println("遍历readline");
while ((line = br.readLine()) != null) {
// 一次读入一行数据
// System.out.println(line);
list.add(line);
}
System.out.println("遍历所有单词集合(arraylist):");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}


String word0 = list.get(0);
list1.add(word0);
String word = " ";//用来存储单词
for(int j = 1;j < list.size();j++){
word = list.get(j);
if(word.substring(0,1).equals(word0.substring(word0.length()-1,word0.length())) )
//不能用“==”判断字符串的等价,要用equals!!!!!!!!!!!!!!!!!!!!!!!!
{
list1.add(word);
word0 = word;
}
}
//打印list1
System.out.println("遍历list1");
//把list1中的结果写入output1.txt文件
for (int g = 0; g < list1.size(); g++){
System.out.println(list1.get(g));
out.write(list1.get(g));
out.write(" ");
}

System.out.println("程序结束!");


} catch (IOException e) {
e.printStackTrace();
}
}

/*
* txt文件的读取
*/
public static void readFile() {
String pathname = "input1.txt";
//不关闭文件会导致资源的泄露,读写文件都同理
//Java7的try-with-resources可以优雅关闭文件,异常时自动关闭文件;详细解读https://stackoverflow.com/a/12665271
try (FileReader reader = new FileReader(pathname);
BufferedReader br = new BufferedReader(reader) // 建立一个对象,它把文件内容转成计算机能读懂的语言
) {
String line;
while ((line = br.readLine()) != null) {
// 一次读入一行数据
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}

/*
*txt文件的写入
*/
public static void writeFile() {
try {
File writeName = new File("D:\\idea\\01\\output1.txt");
writeName.createNewFile(); //创建新文件,有同名的文件的话直接覆盖
try (
FileWriter writer = new FileWriter(writeName);
BufferedWriter out = new BufferedWriter(writer)
) {
out.write("我会写入文件啦!\r\n"); // \r\n为换行
out.flush(); // 把缓存区内容压入文件
}
} catch (IOException e) {
e.printStackTrace();
}
}


}

标签:总结,文件,27,System,学习,println,new,txt,out
From: https://www.cnblogs.com/YFLZ/p/17161396.html

相关文章

  • 2023.2.27课堂测验
    今天在课堂上进行了,《飘》英文的最长单词链的计算。首先,我进行了流程的构思,先进行单词的首尾读取然后进行,第一个单词尾与第二单词的首进行比较。最后进行统计。在课堂......
  • Javasricpt总结(三)
    typeof运算符返回一个字符串,表示操作数的类型console.log(typeof42);//Expectedoutput:"number"instanceof运算符用于检测构造函数的prototype属性是否出现在某......
  • 助教总结(前端开发技术)
    一、助教工作的具体职责和任务  在本学期担任阴爱英老师的软工专业21级前端开发技术这门课程的助教主要完成以下几个方面的任务:    1、对本门课的大作业————......
  • 2-27总结
    课堂练习01题目:计算最长英语单词链。一、题目内容:大家经常玩成语接龙游戏,我们试一试英语的接龙吧:一个文本文件中有N个不同的英语单词,我们能否写一个程序,快速找出最长......
  • Windows驱动开发学习记录-IRP取消例程问题
    一般设置IRP取消例程很简单,大致代码如下{......IoSetCancelRoutine(pIrp,LogIRPCancelRoutine); pIrp->IoStatus.Status=STATUS_PENDING;returnSTATU......
  • 2月27日课后总结
    2/27课后总结函数参数两类#形参#defmy_func(a,b):a和b都是形参定义函数时写在括号内的#实参 #my_func(1,2)1和2都是实参,调用函数时写在括号内的......
  • 【图深度学习】图傅里叶变换
    【图深度学习】图傅里叶变换图傅里叶变换就是把图信号变换到以图拉普拉斯矩阵的特征向量为基的向量空间中,其本质是基变换。拉普拉斯矩阵的特征向量就是图傅里叶基,我们称......
  • Windows驱动开发学习记录-应用层打开设备符号链接在不同系统的区别
    驱动层创建{......UNICODE_STRINGusMyControlDevice=RTL_CONSTANT_STRING(MY_CONTROL_DEVICE_NAME); ntStatus=IoCreateDevice(pDriverObject,NULL,......
  • Spring学习笔记
    1.Spring作为轻量级框架的两大核心:IOC、AOP、事务处理(基于AOP)。2.经过学习要会什么?  核心概念IOC、DI >>>>整合mybatis>>>>AOP概念及操作>>>>事务实用开发3.架构......
  • 韦东山2440-学习笔记-ADC触摸屏
    1.程序员需要关注的硬件特性1.1ADC的特性输出数据用多少位描述10bit模拟输入最大值0-3.3V采样/转换速度每秒转换500*1000次1.2看本SoCAD......