Java自动填充ArrayList,搜索更好的选项
我在这里使用这段代码自动用obj文件的目录路径填充字符串数组列表,以供以后在动画中使用,但这有一个小问题:
private List<String> bunny_WalkCycle = new ArrayList<String>();
private int bunny_getWalkFrame = 0;
private void prepare_Bunny_WalkCycle() {
String bunny_walkFrame = "/bunnyAnimation/bunnyFrame0.obj";
while(bunny_WalkCycle.size() != 30) { // 30 obj files to loop through
if(bunny_getWalkFrame != 0) {
bunny_walkFrame =
"/bunnyAnimation/bunnyWalkAnim/bunnyWalkFrame_"+bunny_getWalkFrame+".obj";
}
bunny_WalkCycle.add(bunny_getWalkFrame);
bunny_getWalkFrame++;
}
}
现在的问题是,blender for animations中的命名约定在实际数字之前有零,所以如下所示:
bunnyWalkFrame_000001.obj
bunnyWalkFrame_000002.obj
bunnyWalkFrame_000003.obj
...
bunnyWalkFrame_000030.obj
用我的prepare_Bunny_WalkCycle方法,我无法解释零,所以我会更改名称并去掉零。。这对于不太多的帧来说可能没问题,但一旦我达到100帧,它就会变得很痛苦。。所以我的问题是:
有什么智能的方法可以解释代码中的零,而不必手动重命名每个文件并删除它们
# 1 楼答案
给你:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html
只需指定需要多少位数。设定为1。如果必须的话,它会推过去(这样就不会切断数字)
# 2 楼答案
这里有两种选择。首先,可以使用字符串格式化程序创建前导为零的文件名:
第二个选项是,如果目录中已包含所有必需的文件,则可以一次性获取所有文件: