java实现线性填充空值_为什么我的Java字符串用空值填充?

我有以下代码,从一个方法复制/粘贴:

String harmonicFile;

...

...

harmonicFile = String.format("%04d%s",this.number, this.suffix.toUpperCase()) + ".tch";结果看起来不错,但我还有一些乐趣:

我把这个字符串传递给另一个包含这个的方法:

if(filename.equals(file)){

return file;

}fileName是传入的值,file是资产文件系统的匹配项。假设文件是​​“0062.tch”。在Intellij IDEA调试器中检查文件名显示它等于“0062.tch”,但返回语句从未被击中。仔细检查,我可以看到文件名被填充了8个空字符(\ u0000)。

我有两个问题:

为什么字符串被填充?

在IDEA中,打破if语句,然后使用表达式计算器(Alt-F8)显示filename.equals(file)为true,但是在运行时通过我的代码逐步显示它不是。我认为这是IDEA评估表达式和Dalvik VM的方式中的一些低级差异?我认为虚拟机是正确的,因为文件名确实不等于文件。

感谢您的任何见解。

西蒙

[编辑]我相信,其余的代码是不相关的,但无论如何,这些意见删除,以节省空间。

public String filePathForHarmonicFile(){

String harmonicFile;

int number = this.number;

if(this.number < 0){ return "";}

if(number<10000 && this.suffix.length()<=1){

harmonicFile = String.format("%04d%s",this.number, this.suffix.toUpperCase()) + ".tch";

}else{

harmonicFile = String.format("%s%s",this.number,this.suffix.toUpperCase()) + ".tch";

}

return SCFileManager.getAssetFilePath("",harmonicFile);

}

public static String getAssetFilePath(String rootOfSearch, String filename){

try {

// get a list of all file entries in the search root

String[] files = ThisApplication.getContext().getAssets().list(rootOfSearch);

for (String file:files){

String newRoot;

if (rootOfSearch.equals("")){

newRoot = file;

} else {

newRoot = rootOfSearch + File.separator + file;

}

if (TidesPlannerApplication.getContext().getAssets().list(newRoot).length>0){

String thisFile = getAssetFilePath(newRoot,filename);

if (!thisFile.equals("")){

return thisFile;

}

} else {

if(file.equals(filename)){

return file;

}

}

}

} catch (IOException e) {

e.printStackTrace();

}

return "";

}我知道这最后一种方法很丑陋,但如果有人知道更好的方法来处理资产中子文件夹中的7.5k文件,那么我非常感谢 - AssetManager是$%^&*脑死亡!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值