Java:子字符串生成的字符串不被视为硬编码字符串

时间:2010-11-21 12:12:50

标签: java android string

亲爱的,我正在为Android 2.2制作一个简单的文件解码器,需要从标题中找到编码文件的文件名。然后应该将此文件名用作解码文件的文件名(正如您所期望的那样)。

文件名由子串name=标识,因此实际名称在此之后开始5个位置。该行由BufferedReader读取并临时存储在currLine

出于某些原因,我无法理解或在网上找到,字符串似乎并不总是字符串......

当我将文件名设为

String fileOutName = "testfile.txt";
System.out.println("fileOutName contains: "+ fileOutName);
System.out.println("fileOutName type: "+ fileOutName.getClass());

它的工作原理应该如此。但是从文件中读取它不起作用:

String fileOutName = currLine.substring((currLine.indexOf("name=")+5));

不提供输出文件,也不提供IO异常。这个字符串是正确解析的:从我在两种情况下找到的System.out调试行:

fileOutName contains: testfile.txt
fileOutName type: class java.lang.String

任何人都知道为什么这不起作用? :S

由于

1 个答案:

答案 0 :(得分:2)

呃...当然substring例程也得到end of line字符,显然不能在文件名中但显然不会被printline返回:)

所以修正了:

String fileOutName = currLine.substring((currLine.indexOf("name=")+5), currLine.length() -1);

感谢您查看此内容并发表评论,只是通过提出问题答案打击了我......任何人都可以将我的答案标记为正确吗?在接下来的两天里我似乎无法做到这一点。