关于char类型与string类型的问题

巨人冲冲冲 2018-12-22 04:06:39

...全文
287 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzx会游泳的鱼 2018-12-25
  • 打赏
  • 举报
回复
ssson 2018-12-24
  • 打赏
  • 举报
回复
int x = 23564; char temp; String str = Integer.toString(x); char [] str2 = new char [str.length()]; for(int i=0;i<str.length();i++) { str2[i]= str.charAt(i); //----------这里和最后一行的问题 int y = str2.length; System.out.print(y); System.out.print(str2[i]); System.out.print(i); System.out.print(y-i-1); System.out.println(str2[y-i-1]); // 上面的charAt(i) 是从charAt(0) 开始到char(4) , 它在做charAt(0) charAt(1)循环的时候,你的str2[y-i-1]是str2[4] str2[3] 里面都还没有东西,所以没东西输出给你就正常了 }
qq_39936465 2018-12-24
  • 打赏
  • 举报
回复
i=0时,System.out.println(str2[y-i-1);这句等于System.out.println(str2[4]);但是str2[4]这时候为空值这里应该报错了。
因为你main 程序 抛弃的异常,所以前2个值的异常报错被抛弃了,所以没有前2个值
白衣神棍 2018-12-23
  • 打赏
  • 举报
回复
引用 4 楼 忘川三千渡 的回复:
什么叫不输出前两个值?你循环里的char数组值是一个个往里加的。所以一开始就获取索引值为4的值是获取不到的

new只是分配内存,只有你赋值了才有东西,你一开始赋值了索引为0的内容,你就想输出索引为4的内容,当然没值啊
zhangpeterx 2018-12-23
  • 打赏
  • 举报
回复
没看懂你在问什么
忘川三千渡 2018-12-22
  • 打赏
  • 举报
回复
什么叫不输出前两个值?你循环里的char数组值是一个个往里加的。所以一开始就获取索引值为4的值是获取不到的
巨人冲冲冲 2018-12-22
  • 打赏
  • 举报
回复
为啥不输出前两个值
巨人冲冲冲 2018-12-22
  • 打赏
  • 举报
回复
结果这里
巨人冲冲冲 2018-12-22
  • 打赏
  • 举报
回复
import java.io.IOException;

public class hello{
public static void main(String[] args) throws IOException{
int x = 23564;
char temp;

String str = Integer.toString(x);
char [] str2 = new char [str.length()];

for(int i=0;i<str.length();i++) {
str2[i]= str.charAt(i);
int y = str2.length;
System.out.print(y);
System.out.print(str2[i]);
System.out.print(i);
System.out.print(y-i-1);
System.out.println(str2[y-i-1]);
}

}

}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧