任何人都可以看到我的代码会给我带来麻烦的原因或位置,我的字符串索引超出范围:-1错误。
我想要做的是从用户通过GUI获取输入并获取该输入并检查它是否包含任何数字,即1,2,3 ...并将它们转换为字符串(" one& #34;,"两个","三个"), 用一句话替换它们。
所以这句话(我有9只猫和1只狗) 会导致(我有九只猫和一只狗)
我不确定我做错了什么,或者我真正想做的是合法编程,我对你说的很新。
谢谢你们!
private String getResultStr()
{
/*** Local Variables ***/
StringBuffer result;
String userInput;
int digit;
int count;
String finalResult = "";
String digitAsStr;
/*** Instantiate ***/
result = new StringBuffer();
/*** Extract Digits (if any) ***/
userInput = txtInput.getText();
result.append( userInput );
count = 0;
while ( count < result.length() )
{
for ( int i = 0; i < result.length(); i++ )
if ( result.charAt( i ) >= '0' || result.charAt( i ) <= '9' )
{
digit = result.charAt( i );
digitAsStr = digitToString( digit );
result.deleteCharAt( i );
result.insert( i - 1, digitAsStr );
}
count++;
}
finalResult = result.toString();
return finalResult;
}
答案 0 :(得分:1)
你开始迭代
for ( int i = 0; i < result.length(); i++ )
然后你得到
result.insert( i - 1, digitAsStr );
答案 1 :(得分:0)
你的if语句:if ( result.charAt( i ) >= '0' || result.charAt( i ) <= '9' )
应该是:if ( result.charAt( i ) >= '0' && result.charAt( i ) <= '9' )
否则一切都会被接受。
答案 2 :(得分:0)
你的行
result.insert( i - 1, digitAsStr );
迭代0上的将尝试在-1处访问索引。