Topic: 一个有关数组下标的问题。。。。

  Print this page

1.一个有关数组下标的问题。。。。 Copy to clipboard
Posted by: boyman
Posted on: 2005-03-14 07:30

请大家先看这么一个程序:
public class TestString1{
  public static void main(String[] args)
  {
    String s="oamiacahu";
    String s1=new String(s);
    byte[] byteArray=new byte[5];
    byteArray=s1.getBytes();
    for(int i=0;i<byteArray.length;i++)
      System.out.println(byteArray[i]);
  }
}
我本来是打算打印出"oamia"这几个字符的字节码,可结果却将"oamiacahu"的字节码全部打出,我原来设定的byteArray只有五个值,却存了9个值。这样数组已经越界了,可是程序却不报错,这是为什么?

2.Re:一个有关数组下标的问题。。。。 [Re: boyman] Copy to clipboard
Posted by: PrimeJava
Posted on: 2005-03-14 09:18

boyman wrote:
byteArray=s1.getBytes();

因为你的这个语句。

public byte[] getBytes()
Encodes this String into a sequence of bytes using the platform's default charset, storing the result into a new byte array.

3.Re:一个有关数组下标的问题。。。。 [Re: boyman] Copy to clipboard
Posted by: boyman
Posted on: 2005-03-14 12:14

谢谢这位大哥帮我解决了这个问题,非常感谢
不知道哪里能下到中文版的解释?

4.Re:一个有关数组下标的问题。。。。 [Re: boyman] Copy to clipboard
Posted by: lenkeny
Posted on: 2005-03-14 23:38

如果你想打印出5个:for(int i=0;i<5;i++)而不是for(int i=0;i<byteArray.length;i++);
byteArray=s1.getBytes();它现在的长度变成了9个了.

5.Re:一个有关数组下标的问题。。。。 [Re: boyman] Copy to clipboard
Posted by: boyman
Posted on: 2005-03-15 07:29

谢谢PrimeJava&&lenkeny帮我解决了问题,谢谢你们!!

6.Re:一个有关数组下标的问题。。。。 [Re: boyman] Copy to clipboard
Posted by: yangnian
Posted on: 2005-03-15 13:15

恩,他们俩说的是正确的。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923