是这样的,next()接收是不带空格的字符串的,所以你输入123 546,next()只会读取123存储到s1中。当到nextline()时,nextline()是以回车作为结束标志,又因为是同一个reader对象,缓存中你输入的546依然存在,而且你输入完是敲了回车的,所以nextline()将546读取后存储到了s2中,打印时自热就出现了这种结果。