黑马程序员技术交流社区

标题: 遍历字符串遇到问题求大婶帮忙 [打印本页]

作者: 潘成旺    时间: 2015-3-6 22:02
标题: 遍历字符串遇到问题求大婶帮忙
本帖最后由 潘成旺 于 2015-3-6 22:05 编辑

代码如下:

/*                B:遍历字符串
                 
               
                分析:首先需要定义一个字符串;
                遍历,输出即可;
*/
package com.panchengwang;

public class LianXi2 {
        public static void main(String[] args) {
                String st = "helloworld";
                System.out.print("[");
                for(int x = 0;x < st.length();x++){
                        char ch = st.charAt(x);
                        if(ch == st.length()-1){
                                System.out.print(ch+"]");
                        }else{
                                System.out.print(ch+" ,");
                        }
                }
                System.out.println();
        }
}

我觉得代码是没问题的,嘿嘿,如有问题,请大婶赐教,小弟定虚心学习,可是问题是,我想要的输出结果是:[h,e,l,l,o,w,o,r,l,d]
可是真正输出的结果确是:[h ,e ,l ,l ,o ,w ,o ,r ,l ,d ,  这是为啥呀?

作者: air鹏    时间: 2015-3-6 22:18
if(ch == st.length()-1)
这句应该是 if(x == st.length()-1)
作者: 艺多不压身丶    时间: 2015-3-6 22:49
将字符串转成字符数组在进行遍历
  1. package pack;
  2. class LianXi2 {
  3.         public static void main(String[] args) {
  4.                         String st = "helloworld";
  5.             char[] chs=st.toCharArray();
  6.                         System.out.print("[");
  7.                         for(int x=0; x<chs.length; x++){
  8.                                 if(x!=chs.length-1)
  9.                                         System.out.print(chs[x]+", ");
  10.                                 else
  11.                                         System.out.println(chs[x]+"]");
  12.                         }
  13.         }
  14. }
复制代码

作者: ㏒假™面具    时间: 2015-3-7 00:16
(ch == st.length()-1) 这一句改成(x==st.length-1)
作者: lwenz    时间: 2015-3-7 10:20
遍历字符串,学习了。。。
作者: 习惯就好    时间: 2015-3-7 11:37
同意楼上观点
作者: yangruijing    时间: 2015-3-7 12:33
想要在最后打印 [ 应该对x进行判断,是不是遍历完了字符串
你的判断语句虽然没有语法错误,但是用字符串中字符的ASCI码和字符串的长度进行比较,返回的是false
所以,你要输出的语句,永远执行不到
程序:
public class test1 {
    public static void main(String[] args) {
            String st = "helloworld";
            System.out.print("[");
            for(int x = 0;x < st.length();x++){
                    char ch = st.charAt(x);
                    if(x == st.length()-1){
                            System.out.print(ch+"]");
                 
                    }else{
                            System.out.print(ch+" ,");
                    }
            }
            System.out.println();
    }
}
作者: 自学小番薯    时间: 2015-3-7 12:43
进来学习学习~~
作者: 潘成旺    时间: 2015-3-7 12:54
yangruijing 发表于 2015-3-7 12:33
想要在最后打印 [ 应该对x进行判断,是不是遍历完了字符串
你的判断语句虽然没有语法错误,但是用字符串中 ...

哦 这样啊,谢谢了
作者: huangchunwei    时间: 2015-3-7 12:56
嗯 说的都是正解,把ch==st.length()-1,改成x==st.length()-1.
作者: 潘成旺    时间: 2015-3-7 12:56
艺多不压身丶 发表于 2015-3-6 22:49
将字符串转成字符数组在进行遍历

谢谢,终于懂了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2