【问题标题】:Creating an object with a string from a file使用文件中的字符串创建对象
【发布时间】:2015-11-17 21:28:09
【问题描述】:

所以我正在尝试创建一个具有以下参数的课程对象

String courseNum, String courseSect, String courseName, String courseGrade, double courseHours, String courseTerm

字符串形式的样本输入如下

APSC1023   AA01B  MECHANICS II                                B+      5.00      2009/WI

课程编号为APSC1023 couseNum,courseSect 为AA01B 和Mechanics 等等,问题与字段分离的方式有关。我在想,由于唯一一次只有一个空格是在名称字段中(只有 1 个空格),因此您可以将此作为您的情况,而不是继续分配下一个变量并执行某种循环,直到有超过 1 个空格。我的问题是你怎么能忽略其他情况而只处理这个特定情况。

【问题讨论】:

  • 听起来你需要对正则表达式和字符串解析做一些研究。
  • 我认为你只会从输入文件中读取,直到遇到空白,然后,当您不再遇到空白时,只需读入下一个变量,依此类推
  • 您的信息似乎是用列分隔的。换句话说, courseNum 从第 1 列开始,长度为 8 列。 courseSect 从第 12 列开始,长度为 5 列。这看起来像是 Cobol 的工作:-)
  • 可能更容易只使用 JSON 字符串,然后使用 jackson 或类似方法将其转换为对象。

标签: java string object io


【解决方案1】:
String str = "APSC1023   AA01B  MECHANICS II                              B+      5.00      2009/WI";
String[] data = str.split("\\s+");

当 data.length == 6 时,我假设 courseName 中没有空格。
当 data.length == 7 时,我假设 courseName 中有一个空格。

【讨论】:

  • 这对包含两个以上部分的课程名称也有效吗?
  • 如果课程名称有一定数量的空间,而其他的都没有,data[0], data[1], data[data.length-1], data[data.length-2] , data[data.length-3] 映射到所有其他字段。剩余数据的字符串连接用于课程名称。
  • 问题是您可以使用 ELECTRICAL & CMPE ENG DESIGN 这样的名称,但名称之间仍然只有 1 个空格
猜你喜欢
  • 2014-04-12
  • 1970-01-01
  • 2018-08-06
  • 2013-03-25
  • 1970-01-01
  • 2015-09-08
  • 2014-11-22
  • 2013-12-05
相关资源
最近更新 更多