dww*_*n66 0 java if-statement substring
我正在使用Java逐行读取文件并解析每行中的数据以获取报告.会定期将一个URL写入一行,我想绕过该行.我需要设置一个if...then测试URL的存在 - 在这种特定情况下,我将其定义为行读取的前四个字节http.如果条件为真,则读取文件中的下一行,但如果条件为false,则将当前行发送到解析器以进行报告输出.
简单,不是吗?我遇到的问题是我无法得到我的if..then陈述以准确识别一个true条件.我唯一的线索是,当我inputString的等于测试值时,它会传递为true.除此之外......我无法发现任何与众不同的东西.
public class testClass
{
public static void main(String args[])
{
String inputString1 = "http://www.google.com/r";
String inputString2 = "google";
String inputString3 = "google search";
String inputString4 = "http";
parseInput(inputString1);
parseInput(inputString2);
parseInput(inputString3);
parseInput(inputString4);
}
//
private static void parseInput(String inputString8) {
int httpFlag;
if (inputString8.substring(0,4) == "http")
{ httpFlag = 1467; } else
{ httpFlag = 10644; }
System.out.println(inputString8+" "+inputString8.toLowerCase().substring(0,4)+" "+httpFlag);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的输出:
http://www.google.com/r http 10644
google goog 10644
google search goog 10644
http http 1467
Run Code Online (Sandbox Code Playgroud)
我期待1467着inputString1和inputString4.控制台似乎正确显示我的输入和子字符串,Java文档中没有任何内容表明我的子字符串将是一个char数组或除了字符串之外的任何东西,所以我无法弄清楚为什么http作为4字节的前四个字节string与(4 + x)字节字符串的前四个字节"不同".我错过了什么?