Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java conditional无法正常工作_Java_If Statement - Fatal编程技术网

Java conditional无法正常工作

Java conditional无法正常工作,java,if-statement,Java,If Statement,我将if语句放入java代码中,以确定文件是否包含某些字符串,如果是,则在else条件下不显示该字符串,但在else条件下仍将获取该字符串。有人能告诉我可能出现的问题吗 我的代码 String a=new String(packet.data); if(a.contains("image/")) { } else { System.out.println(a); } 假设packet.d

我将if语句放入java代码中,以确定文件是否包含某些字符串,如果是,则在else条件下不显示该字符串,但在else条件下仍将获取该字符串。有人能告诉我可能出现的问题吗

我的代码

      String a=new String(packet.data);
      if(a.contains("image/"))
      {

      }
      else
      {
           System.out.println(a);
      }

假设packet.data是一个字节数组,您没有指定如何将这些字节解释为文本的编码——这几乎总是一个错误。它将使用系统默认编码,这只是碰巧是正确的编码


网络数据包本质上是二进制数据;如果你想从它们中提取文本,你需要了解它们的结构——包括使用什么编码。虽然您可以盲目地将所有网络数据包视为ASCII数据,但它会给您带来不适当的结果。

您不能通过类似于
packet.getBuffer()
之类的方法检索缓冲区吗?

乍一看,它看起来不错。在测试之前,可能会将字符串发送到System.out,以确保它确实包含您认为它的功能?
(如果
s不是循环)。另外,很难说清楚您到底想要什么。a的内容是什么?为了更快地获得更好的帮助,请发布一个。
如果
语句有缺陷,它们只工作一半时间;-)我在一个文件中写了“a”的内容,内容如下HTTP/1.0 200 OK Date:Wed,2011年2月10日13:20:32 GMT内容长度:35 Pragma:no cache Expires:Wed,2000年4月19日11:43:00 GMT上次修改:Wed,2004年1月21日19:51:30 GMT内容类型:image/gif缓存控制:private,no cache,no cache=Set Cookie,代理重新验证服务器:GFE/2.0连接:保留-Alive@Natasha:但是你是怎么把它写进文件的?你对字符编码了解多少?您需要区分二进制数据和文本数据。老实说,这在Java中不是一个问题-这是您的代码和理解中的一个问题,但是如果您没有提供足够的信息,就很难提供帮助。这应该是一个注释,而不是答案。。。