当前位置: 技术问答>java相关
问:关于substring()的一道题
来源: 互联网 发布时间:2015-07-08
本文导语: 题目:if you run the code below,what gets printed out? String s=new String("Bicycle"); int iBegin=1; char iEnd=3; System.out.println(s.substring(iBegin,iEnd)); A. Bic B. ic C. icy D. error:no method matching substring(int, char) 答案选择B,我也compile an...
题目:if you run the code below,what gets printed out?
String s=new String("Bicycle");
int iBegin=1;
char iEnd=3;
System.out.println(s.substring(iBegin,iEnd));
A. Bic
B. ic
C. icy
D. error:no method matching substring(int, char)
答案选择B,我也compile and run了,确实是B
请教大家,String的substring()方法,不应该是两个int的参数吗,那么把char类型的变量传给给方法的时候,这个char变量是不是被convert to int了?还是其他怎么回事?
谢谢了先
String s=new String("Bicycle");
int iBegin=1;
char iEnd=3;
System.out.println(s.substring(iBegin,iEnd));
A. Bic
B. ic
C. icy
D. error:no method matching substring(int, char)
答案选择B,我也compile and run了,确实是B
请教大家,String的substring()方法,不应该是两个int的参数吗,那么把char类型的变量传给给方法的时候,这个char变量是不是被convert to int了?还是其他怎么回事?
谢谢了先
|
iend确实被转换成int的,但是却并不会影响iend本身的类型,iend仍旧是char型的,可以理解成转换是对一个由iend生成的临时变量进行的。
|
在sl-275 中,char就是当作整型来处理的,他的范围为0-65535
|
熟悉强制转换你就明白了。
byte Mbyte=0;
char Mchar=0;
short Mshort=0;
int Mint=0;
long Mlong=0;
double Mdouble=0;
试一下 两两能不能复值就知道了。
如 Mbyte=Mlong ; Mchar=Mint ; Mdouble=Mshort ... etc...
byte Mbyte=0;
char Mchar=0;
short Mshort=0;
int Mint=0;
long Mlong=0;
double Mdouble=0;
试一下 两两能不能复值就知道了。
如 Mbyte=Mlong ; Mchar=Mint ; Mdouble=Mshort ... etc...
|
呵呵,subsring(ibegin,iend)是这样的,ibegin是指从那里开始截取,而最终截取的位数是iend - ibegin 的结果,你上面的3-1=2,所以从第一位开始截取,截取两个字符,所以出现如上的答案,记住ibegin是从0开始的。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。