java - 如何按顺序遍历数组
问题描述
我读了一个 file.txt 并得到了行String[] line;
例如,我有课,
public class Command {
String commandName;
String parameter;
String result;
}
我line
可以在数组中包含 1 个元素或 2 个元素,或者第一个和第三个元素。
那么,如何将 myline
与 my相关联MyClass
?
我可以想象只if
为类数组中的每个元素声明
if(line.length==1){
command.setCommandName(line[0];
}
if(line.length==2){
command.setCommandName(line[0]);
command.setParameter(line[1]);
}
if(line.length==3){
command.setCommandName(line[0]);
command.setParameter(line[1]);
command.setResult(line[2]);
}
map
之后我想做
Map<String,Command> map = new HashMap<>();
map.put(command.getCommandName(),command);
然后在未来的一些方法中......
String result=map.get("some command").getResult();
因此,如果我命名了字段,我不应该记住哪个元素是String[]
什么意思。
解决方案
为什么不能只使用 for 循环?这是一个示例(注意我更改了代码,现在您可以传递从.txt
文件中读取的行长度并将其传递给您的myClass
对象):
Command command = new Command();
command.setLines(lines);
并将您的更改Command
为:
class Command {
private String[] lines = new String[3];
public void setLines(String[] lines) {
if (lines != null) {
this.lines = lines;
}
}
public String getName() {
return lines[0];
}
public String getParameter() {
if (lines.length >= 2) {
return lines[1];
}
}
public String getResult() {
if (lines.length >= 3) {
return lines[2];
}
}
}
现在在创建地图时:
Map<String, Command> map = new HashMap<>();
map.put(command.getName(), command);
然后你也可以这样做:
String result = map.get("your_command").getResult();
.txt
现在,您通过从文件中读取的行的长度来定义 lines 变量。这解决了空值或更多值的问题。由于您还想要名称,因此您可以从数组中获取第一个值,因为根据您的实现,它始终是名称。这为您提供了急需的可定制性和自动化。
推荐阅读
- php - 是否可以在 CodeIgniter 中使用手动 SQL 查询?
- asp.net - AsyncFileUpload 在用户控件的 UpdatePanel 中导致回发
- angular - MEAN.io 创建 CRUD 应用程序
- azure - Azure ARM 模板 - 嵌套资源参考
- spring-mvc - js和css在同一目录下,如何配置SpringMVC获取静态资源?
- python - python networkx,具有n个节点的图,每个节点都有k度
- powershell - 在PowerShell中如何替换回车
- java - 需要一些关于在 Android 上将裁剪图像插入原始图像的建议
- cordova - 离子。TypeError:不支持的代理协议
- c# - ApplyThemeColorScheme for Word & Excel