首页 > 其他分享 >第三周上课测试

第三周上课测试

时间:2023-02-28 15:01:12浏览次数:41  
标签:上课 测试 第三周 单词 length 数组 import new String

今天上课留下的任务是计算出一篇英语文本中最长且不重复的单词链。

在知道这个要求时,我先判断出它需要对文件进行操作以及一定会用到至少两个数组。我计划先将文件中的单词存在一个数组中,再用一个新数组存储单词链,为了解决新数组中开始没有单词的问题,我先让新数组默认第一个单词为文件第一个单词,第一次循环用continue维持接下来的循环,当判断到文件中下一个单词确实和新数组中最后一个单词首尾字母相同时,再用一个循环判断该单词是否与之前存入新数组中的单词重复,当满足首尾相同以及不重复时,该单词才会存入新数组中。下面是源代码:

package study;

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

public class ddanci {
public static void main(String[] args) {
File file = new File("F:\\input1.txt");
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);

if (file.exists())
System.out.println("文件存在");
else
System.out.println("文件不存在");
StringBuffer sb = new StringBuffer();
String l;
while ((l = br.readLine()) != null) {
sb.append(l);// 将读取的数据存入一个字符串中
}
br.close();
String str = sb.toString().toLowerCase();// 转化为小写
String[] data = str.split("[^(a-zA-Z)]+");
String[] b = new String[data.length];
for (int i = 0; i < b.length; i++)// 将读取的单词存入数组中
{
b[i] = data[i];
}
int i = 1;
int j = 0;
int y = 0;
String[] a = new String[b.length];
a[0] = b[0];
for (; j < b.length; j++) {
if (a[i - 1].equals(b[j]))
continue;
if (a[i - 1].charAt(a[i - 1].length() - 1) == b[j].charAt(0)) {
for (int e = 0; e < a.length; e++) {

if (b[j].equals(a[e]))
y++;

}
if (y == 0) {
a[i] = b[j];
i++;
}
y = 0;
}
}

FileWriter fw = new FileWriter("F:\\output1.txt");
BufferedWriter bw = new BufferedWriter(fw);
for (i = 0; i < a.length; i++) {
if (a[i] != null) {
bw.write(a[i]); // 向文件中写入数据
bw.write('\r');
bw.write('\n');
} else if (a[i] == null) {
System.out.println(" ");
}

}
bw.close(); // 关闭输出流

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

在写这个代码时,最大的问题就是我在得出一个单词最后一位时,我用的charAt()方法,但在实际运行过程中,一直会出现空指针的问题,后来我分析得知,开始的代码中在判断新单词与新数组之前的单词重复时,无论是否重复以至于是否存入新数组中,新数组都会向后移一位,导致当次判断虽然不会出错,但是在下一次循环中,没存入新单词的那一位必然是空的,这导致空指针的问题,后来我把新数组向后移一位的操作放在了内层循环之中,只有向新数组中存入一个新单词后,才会向后移,自此,问题就全部解决了。

标签:上课,测试,第三周,单词,length,数组,import,new,String
From: https://www.cnblogs.com/zjsdbk/p/17164278.html

相关文章

  • python+playwright 学习-17.模拟手机浏览器测试
    前言使用Playwright,您可以在任何浏览器上测试您的应用程序,也可以模拟真实设备,例如手机或平板电脑。设置手机模式只需配置您想要模拟的设备,Playwright就会模拟浏览器行......
  • 子分类1-1:测试随笔
    测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随......
  • Java微基准测试神器JMH初探
    当我们编写一段Java代码之后,如果想知道代码性能如何,就需要进行一些快速的性能测试。当我们实现一个需求,面临2种及以上的方案,选择一种性能更好的方案时,也需要进行一些快速的......
  • 子分类1:测试随笔
    测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随......
  • 子分类2:测试随笔
    测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随笔测试随......
  • 一次性批量插入大批量测试数据记录
    方法一:使用整数直接循环法:DECLARE@IINTSET@I=0WHILE@I<10000BEGIN INSERTINTOYOURTABLE(COLOUMN1, COLOUMN2)VALUES(@I,'TEST') SET@I=@I+1END方法二:插入......
  • 软件测试概述
    软件质量模型可靠性:成熟性:容错性:易恢复性:易用性:易理解性功能性当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。适合性:为指定的任务和......
  • 第三周day1
    第三周day1,星期一所花时间(上课时间+练习时间):6h代码量:110博客量:2所学到的知识:学了一些Map的相关知识,还有如何切割字符串,如何将字符串转换成字符数组str.toCharArray()。......
  • 第三周星期一每日总结
      今天下午软件工程两节课的教导让我受益匪浅,程序=数据结构+算法,这告诉我们编程主要注重的是思想,其次才是写代码,写代码我们多加练习总是能够写出来的,但我们要是缺少了......
  • 软件测试与检验复习5(Integration testing/System Testing)
    UnitTestingvs.IntegrationTesting 单元测试与集成测试Unittesting:TestanIndividualUnitorBasicComponentoftheSystembeforeIntegration.  单元......