用单词替换数字

时间:2015-03-01 23:02:29

标签: java replace stringbuilder

所以我有一个学校的项目,我正在研究,并希望你们可以查看我的代码并告诉我我可能做错了什么。我需要将所有数字0-9替换为他们的单词对应物,但是任何数字都要保持不变。

这是现在的代码和我的推理

我的智慧结束了12不打印onetwo。我已经尝试了一切,我现在已经

for (int i=0; i < stringBuilder.length(); i++)
  {
    if ((stringBuilder.charAt(i) == '0' || stringBuilder.charAt(i) == '1' || stringBuilder.charAt(i) == '2' || stringBuilder.charAt(i) == '3' || stringBuilder.charAt(i) == '4' || stringBuilder.charAt(i) == '5' ||            stringBuilder.charAt(i) == '6' ||
         stringBuilder.charAt(i) == '7' || stringBuilder.charAt(i) == '8' || stringBuilder.charAt(i) == '9')&& (stringBuilder.charAt(i-1) != '0' || stringBuilder.charAt(i-1) != '1' || stringBuilder.charAt(i-1) != '2' || stringBuilder.charAt(i-1) != '3' || stringBuilder.charAt(i-1) != '4'
         || stringBuilder.charAt(i-1) != '5' || stringBuilder.charAt(i-1) != '6' || stringBuilder.charAt(i-1) != '7' || stringBuilder.charAt(i-1) != '8' || stringBuilder.charAt(i-1) != '9') && (stringBuilder.charAt(i+1) == '0' || stringBuilder.charAt(i+1) == '1'
         || stringBuilder.charAt(i+1) == '2' || stringBuilder.charAt(i+1) == '3' || stringBuilder.charAt(i+1) == '4' || stringBuilder.charAt(i+1) == '5' || stringBuilder.charAt(i+1) == '6' || stringBuilder.charAt(i+1) == '7' || stringBuilder.charAt(i+1) == '8' || stringBuilder.charAt(i+1) == '9'))
       {

基本上它首先贯穿for循环来查找i的任何位置是否具有这些值然后它执行位置(i)-1以查看它是否也是i之前的位置,然后它为i + 1做同样的事情然而我得到一个关于-1值范围无效或其他的错误。有人可以提供帮助吗?

1 个答案:

答案 0 :(得分:1)

从你开始  i = 0,你无法使用  charAt(i-1)因为-1是无效索引。