对于非单字节编码而言content.length()长度永远小于content.getBytes().length,只有对单字节字符而言这两个长度才相等。
另外分数组处理实在不是好办法,即需要书写更长的代码,运行效率也低于用流方式处理的。
一下是我写的两种方式的处理代码 你能明显的比较出来。流只用一个循环,而字节数组至少要一个双循环。
String s="实现dhl反对思考浪费你的身份了你看打发士大夫士大夫似的"
//数组方式
byte[] bs=s.getBytes()
int length=5,len=bs.length/length,len1
byte[] tmp=new byte[length]
for(int i=0i<leni++){
for(int j=0j<lengthj++)
tmp[j]=bs[i*length+j]
System.out.println(Arrays.toString(tmp))
}
tmp=new byte[length]
if((len1=bs.length%length)>0){
for(int i=0i<len1i++)
tmp[i]=bs[len*length+i]
System.out.println(Arrays.toString(tmp))
}
//流方式
InputStream is=new ByteArrayInputStream(s.getBytes())
int length2=5,len2
byte[] bs2=new byte[length2]
try {
while((len2=is.read(bs2))>0){
if(len2!=length2)
Arrays.fill(bs2, len2, 5, (byte)0)
System.out.println(Arrays.toString(bs2))
}
} catch (IOException e) {
e.printStackTrace()
}
Java支持从.号出换行。但不支持从类名或者方法名中间断开换行。
例如:
System.out.println("Hello World")1
可以写成:
System
.
out
.
println
(
"Hello"
)
123456789
在 Java 中,换行和空格是等价的,他们都被称为“空白字符”。而且不同的符号(例如变量名与括号,数字与运算符等等)之间的空白字符会被忽略掉。但标识符(变量名、方法名等)不能分开。
你是问类似C语言中字符换行符号么?如果是这种java中不支持,可以通过+号分成两个串来连接。如果是代码中的换行,中直接使用回车就行。
比如:
int year = 2006
可以按照如下写:
int
year
=
2006