Java 仅在数组的部分区域中搜索的最佳方法

Java 仅在数组的部分区域中搜索的最佳方法,java,arrays,Java,Arrays,请不要提供实际的代码,只给我一些项目来研究如何实现这一点,或者尝试引导我朝着正确的方向前进 我目前有一个任务,将文本文件读入字符串数组,然后使用用户输入的产品编号(pid),通过将每个选项放入另一个数组来配置汽车 以下是我在名为anyCarConfig[]的字符串数组中输入的文本文件信息。我已经包含了数组中的索引来帮助说明这一点。 下面是我如何提出不同选择的描述 获取选项 类型:公共静态 输入:字符串pid-12位产品ID号 返回:返回选项的字符串数组 描述:读取pid的最后8个数字,并在an

请不要提供实际的代码,只给我一些项目来研究如何实现这一点,或者尝试引导我朝着正确的方向前进

我目前有一个任务,将文本文件读入字符串数组,然后使用用户输入的产品编号(pid),通过将每个选项放入另一个数组来配置汽车

以下是我在名为anyCarConfig[]的字符串数组中输入的文本文件信息。我已经包含了数组中的索引来帮助说明这一点。
下面是我如何提出不同选择的描述

获取选项

类型:公共静态

输入:字符串pid-12位产品ID号

返回:返回选项的字符串数组

描述:读取pid的最后8个数字,并在anyCarConfig中标识选项,如下所示:

索引1。外观颜色

索引2。内饰颜色

索引3。动力系统

索引4。座位类型

索引5。无线电类型

索引6。轮胎尺寸

索引7。轮辋尺寸

索引8。杂

如果数字为零,则选项为无。每个选项都附加到一个数组中,其选项名称和类型为字符串示例:“外部颜色:白色”。定义所有选项后,返回选项数组

再一次不要给我完整的代码,因为我想通过一些尝试和错误来学习。非常感谢。这是我的第一篇文章,所以我希望我做得正确

这是我目前的思考过程。只是需要一些指导

第一步:创建循环以遍历从第5个字符开始的pid字符串,并在执行时存储每个字符

第二步:从anyCarConfig[4]开始,将pid字符串循环中存储的字符中的值相加,以获得anyCarConfig[]的正确索引

第三步:将anyCarConfig[]索引添加到我将返回的getOptions()字符串数组中

第四步:从添加到getOptions()字符串数组的anyCarConfig[]开始循环,直到在anyCarConfig[]中找到以字符而不是数字开头的下一个条目

第五步:进行pid字符串循环的下一次迭代

第六步:使用从第四步找到的索引作为开始循环,就像第二步一样

重复整个过程,直到到达pid字符串的末尾并创建getOptions()字符串数组为止


我知道我缺少一些东西,比如解析,从anyCarConfig[]值中删除我不需要的字符,等等,但我只是想给出一个大概的想法。

我个人会先解析可用的选项,然后创建几个对象作为类别。对象具有名称(如外部颜色)和一组选项。最理想的方法是,将它们保存在地图中:键是代表选项的数字的索引,值当然是选项对象本身。 比如:


当然,您必须用解析的数据替换这些硬编码字符串,但一旦以这种方式保存,就很容易访问数据,因为您只需使用
选项。获取(索引)
,而index代表您的产品编号的当前数字的索引。

您需要向我们展示您的问题尝试,并告诉我们您遇到的任何问题。请仔细阅读并牢记:我确实看过了。这就是为什么我要求不要向我提供代码。?所以,如果你已经看过了,那么你在解决问题上最真诚的尝试是什么呢?我刚刚在上面添加了我的思考过程。如果我能得到一些指导,至少告诉我我做错了,这会有所帮助。感谢您对我的帖子的迅速关注。为什么不首先尝试将您的思维过程实现为代码,测试它,修改它,因为您绝对不会有任何损失?你有自己强大的计算实验室在指尖等着你的输入和实验。这正是我需要的。我将开始研究Map,看看如何将其应用到我的项目中。非常感谢,不客气。我想我提到了你需要的Map的每一个用法,但是你应该关心用getter和setter创建objectconfigurationoption,以及如何解析文件。我只是在寻找一个可以帮助我走向正确方向的研究课题。正如上面提到的那个人,我真的需要做一些尝试和错误,但我想确保我没有尝试离开左外野的东西。
[0] - 0001 model1 10000.00

[1] - 0002 model2 20000.00
[2] - 
[3] - Options
[4] - Exterior Color
[5] - 1 Blue 3000.00
[6] - 2 Red 3000.00
[7] - 3 Green 3000.00
[8] - 4 White 3000.00
[9] - 5 Black 3000.00
[10] - 6 Yellow 3000.00
[11] - 7 Orange 3000.00
[12] - 8 Gold 3000.00
[13] - 9 Purple 3000.00
[14] - Interior Color
[15] - 1 Leather-Tan 5000.00
[16] - 2 Leather-Black 5000.00
[17] - 3 Leather-Red 5000.00
[18] - 4 Vinyl-Tan 3000.00
[19] - 5 Vinyl-Black 3000.00
[20] - 6 Vinyl-Red 3000.00
[21] - 7 Cloth-Tan 1000.00
[22] - 8 Cloth-Black 1000.00
[23] - 9 Cloth-Red 1000.00
[24] - Powertrain
[25] - 1 Automatic 7500.00
[26] - 2 Manual 5000.00
[27] - Seat
[28] - 1 Multi-Point 800.00
[29] - 2 Heated 1200.00
[30] - 3 Air 2000.00
[31] - Radio
[32] - 1 AM/FM 500.00
[33] - 2 CD 750.00
[34] - 3 MP3 850.00
[35] - 4 Sirius/XM 900.00
[36] - 5 NAV 3000.00
[37] - Tire
[38] - 1 All-Weather 500.00
[39] - 2 Sports 1100.00
[40] - 3 Premium 1500.00
[41] - Rim
[42] - 1 18 1100.00
[43] - 2 19 1200.00
[44] - 3 20 1300.00
[45] - 4 22 1400.00
[46] - 5 26 2000.00
[47] - Miscellaneous
[48] - 1 MoonRoof 3000.00
[49] - 2 SunRoof 5000.00
[50] - 3 Panaramic 8000.00
Map<String, ConfigurationOption> options = new HashMap<>();
options.put(1, new ConfigurationOption("Exterior Color", "Blue", "Red", "Green", "White", "Black", "Yellow", "Orange", "Gold", "Purple");
public ConfigurationOption(String name, String ... options) {
  ...
}