作者MAIDic (咩滴可)
看板java
标题[问题] 如何在字串中读取字元
时间Wed Oct 21 22:35:21 2015
刚刚写到一题
题目会给好几串英数字
"1A3B4S\n"
"4X1b1X\n"
" ......."
然後要输出
"ABBBSSSS\n"
"XXXXbX\n "
"....... "
只是我不知道要怎麽单独去读取个别的字串出来运算
上网查了一下好像是用charAt();
先写了下面的程式码测试
Scanner scanner = new Scanner(System.in);
String str1 = scanner.nextLine();
for(int i=0;i<132;i++) \\每一列不会超过132个字元
{
int num = str1.charAt(2*i);
System.out.print(num);
}
但是他却显示
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String
index out of range: 4
4850 at java.lang.String.charAt(String.java:658)
请问是哪里出问题了呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.161.23.175
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1445438123.A.5F8.html
1F:推 LPH66: 你知道这个错误讯息是什麽意思吗? 10/21 22:55
2F:推 Dnight: 简单的说,你的字串如果只有3,charAt的有效范围就是0,1,2 10/21 23:00
3F:→ Dnight: 你想想看嘛,才三个字你跟他要charAt(5)他要给你什麽? 10/21 23:00
4F:→ Dnight: 当然是阿杀力的报错给你看阿 10/21 23:01
5F:→ MAIDic: 那请问要怎麽改呢 现在毫无头绪啊 10/21 23:06
6F:→ MAIDic: 先把字串填满0吗? 10/21 23:07
7F:推 LPH66: 你要知道你的字串有多长 10/21 23:42
8F:→ MAIDic: 输入的字串没有固定长度@@ 10/22 00:28
9F:→ nhlsi: 那就先判断字串长度 10/22 00:31
10F:推 LPH66: 不是预先知道, 是输入之後去看看它有多长 10/22 02:07
11F:推 kina: 给你几个类别方法 10/22 02:46
12F:推 kina: String.tochararray String.length character.isdigit 10/22 02:49
13F:推 Dnight: strl.length()应该有帮助 10/22 08:23
14F:→ dou0228: JFlex 表示: 10/22 08:58
15F:推 gmoz: i < str1.length() 10/22 15:31
16F:→ MAIDic: 感谢各位 可是还有个问题就是他读的是char 10/22 17:38
17F:→ MAIDic: 变成int 的话数字会跑掉 10/22 17:39
18F:→ MAIDic: 变成acsii 的形式 10/22 17:40
19F:推 LPH66: 这个问题因为不清楚你的程度到哪里不太好教 10/22 19:49
20F:→ LPH66: 理论上应该要讲 String.valueOf() 10/22 19:49
21F:→ LPH66: 不过看你这题目好像只有一位数, 那这个比较不那麽直觉的 10/22 19:50
22F:→ LPH66: (int)(ch - '0') 也是可以用 10/22 19:50
23F:→ LPH66: 啊, 不是 String.valueOf, 是 Integer.parseInt 才对 10/22 19:51
24F:→ LPH66: 之所以在这里讲 parseInt 怪怪的是因为它吃 String 10/22 19:53
25F:→ LPH66: 这代表要嘛你要用 String.substring 切子字串 10/22 19:53
26F:→ LPH66: 要嘛你得把那个 char 变成一个长一个字的 String 10/22 19:53
27F:→ LPH66: 不管走这三条路的哪一条都会让你多花一点时间理解应用... 10/22 19:54
28F:推 dreamnook: 每一列不会超过132字元 你i>66 2*i就爆炸了 10/23 19:02
29F:推 wtao: scanner 很好用 可以去找找范例 10/25 18:11
30F:推 adern9: 今天大家好友善喔 10/30 02:18
31F:推 zephyrhymn: 哈 平常应该是会被炮的问题XD 10/30 22:33