输入的字符串最后存在换行,即rn这两个字符。可以在数组中先抹去这两个字符再传送到服务器端。len=len-2就好了。这两个字符r称为回车符(返回一行开头,ascii:13),n称为换行符(另起一行,ascii:10)实际情况却不这么简单,因为不同操作系统对回车解释是不一样的,在windows和MS-DOS下是rn,然而在linux、Unix下是n,MAC OS则是r,因此需要针对不同平台进行优化。当然了,如果只在window下运行,那大可直接减去2就行了。
命令行输入时的不可视字符,如回车、换行把InputStream is = System.in;换成java.util.Scanner,应该可以解决