【发布时间】:2013-10-14 18:02:05
【问题描述】:
我正在尝试使以下算法起作用。我想要做的是将给定的字符串拆分为由一系列数字或运算符组成的子字符串。
所以对于这个字符串 = "22+2",我会得到一个数组,其中 [0]="22" [1]="+" 和 [2]="2"。
这是我目前所拥有的,但我得到了一个索引超出范围的异常:
public static void main(String[] args) {
String string = "114+034556-2";
int k,a,j;
k=0;a=0;j=0;
String[] subStrings= new String[string.length()];
while(k<string.length()){
a=k;
while(((int)string.charAt(k))<=57&&((int)string.charAt(k))>=48){
k++;}
subStrings[j]=String.valueOf(string.subSequence(a,k-1)); //exception here
j++;
subStrings[j]=String.valueOf(string.charAt(k));
j++;
}}
我宁愿被告知我的推理出了什么问题,也不愿被提供替代方案,但我当然会感谢任何形式的帮助。
【问题讨论】:
-
您希望它适用于所有运营商,而不仅仅是
+,对吧? -
是的,现在标准“任何不是数字的东西”都可以。
-
您是对这个特定的算法感兴趣,还是对解析数字和运算符的一般问题感兴趣?也就是说,你会对不同的算法感兴趣吗?
-
我会的,因为我需要为学校项目做这个,但我也很感兴趣为什么我正在做的事情不起作用(我一遍又一遍地看着它我不明白)。在这两种情况下,任何输入都非常受欢迎。
标签: java string algorithm substring