package javaPractice;import java.util.Scanner;public class TestScanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
char[] a = new char[str.length()];
a = str.toCharArray();
int i = 0;
while(a[i]!='#') {
System.out.println((int)a[i]);
i ++;
}
sc.close();
}
}
 

解决方案 »

  1.   

    package javaPractice;import java.util.ArrayList;
    import java.util.Scanner;public class TestScanner {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String str = sc.next();
    ArrayList<Character> a = new ArrayList<Character>();
    int i = 0;
    while((char)a.get(i)!='#') {
    a.add(str.charAt(i));
    System.out.println((int)a.get(i));
    i ++;
    }
    sc.close();
    }
    }
     
      

  2.   

    while(a[i]!='#') 改为  
    while (i < a.length && a[i] != '#')原因很明显!
      

  3.   

    package javaPractice;import java.util.*;public class TestScanner {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String str = sc.nextLine();
    ArrayList<Character> a = new ArrayList<Character>(str.length());
    int i = 0;
    while(str.charAt(i)!='#') {
    a.add(str.charAt(i));
    System.out.println((int)a.get(i));
    i ++;
    }
    sc.close();
    }
    }
     
    哇智障儿童不能想到为什么i<a.getSize()
      

  4.   

    那个是因为输入的字符串中, 没有输入#,也就是说,找不到结束的条件,while循环里面的i++,最终超出数组a的长度,报此异常。
      

  5.   


    public class ScannerTest {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String str = sc.nextLine();
            char[] a = str.toCharArray();
            int i = 0;
            while(i < a.length && a[i]!='#') {
                System.out.println(a[i]);
                i ++;
            }
            sc.close();
        }
    }
      

  6.   

    不清楚你的要求,参考这个改造下代码吧
     public void test()
        {
            String input = null;
            Scanner sc = new Scanner(System.in);
            do
            {
                LOGGER.info("------------输入x退出,回车换行继续------------");
                
                
                
                input = StringUtils.trimToEmpty(sc.nextLine()); 
            } while (!StringUtils.equalsIgnoreCase(input, "x"));
            LOGGER.info("------------成功退出------------");
            sc.close();
        } 
      

  7.   

    import java.util.Scanner;import org.apache.commons.lang3.StringUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;public class TestScanner
    {
        private static final Logger LOGGER = LoggerFactory.getLogger(TestScanner.class);
        
        public static void main(String[] args)
        {
            String input = null;
            Scanner sc = new Scanner(System.in);
            do
            {
                LOGGER.info("------------输入#退出,其他值继续------------");
                input = StringUtils.trimToEmpty(sc.nextLine());
                char[] a = input.toCharArray();
                int i = 0;
                while (i < a.length && a[i] != '#')
                {
                    System.out.println((int)a[i]);
                    i++;
                }
            } while (!StringUtils.contains(input, "#"));
            LOGGER.info("------------成功退出------------");
            sc.close();
        }

      

  8.   

    import java.util.Scanner;public class test1 { public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner sc = new Scanner(System.in);
    char[] a;
    boolean flag = true;
    while (flag) {
    System.out.println("请输入字符,输入'#'结束:");
    String str = sc.next();
    a = new char[str.length()];
    a = str.toCharArray();
    for (char i : a) {
    if (i == '#') {
    flag = false;
    break;
    } else {
    System.out.println((int) i);
    }
    } } }}