Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java字符串索引超出范围,不知道出了什么问题_Java - Fatal编程技术网

Java字符串索引超出范围,不知道出了什么问题

Java字符串索引超出范围,不知道出了什么问题,java,Java,任何人都可以看到我的代码给我带来麻烦的原因或位置,我得到的字符串索引超出范围:-1错误 我试图做的是通过GUI从用户那里获取输入,并获取该输入,然后检查它是否包含任何数字,即1,2,3。。。并将其转换为字符串(“一”、“二”、“三”), 用一句话替换它们 所以这句话(我有9只猫和1只狗) 将导致(我有九只猫和一只狗) 我不确定我做错了什么,或者如果我想做的是合法的编程,你可以告诉我,我对它很陌生 谢谢大家 private String getResultStr() { /*** Loca

任何人都可以看到我的代码给我带来麻烦的原因或位置,我得到的字符串索引超出范围:-1错误

我试图做的是通过GUI从用户那里获取输入,并获取该输入,然后检查它是否包含任何数字,即1,2,3。。。并将其转换为字符串(“一”、“二”、“三”), 用一句话替换它们

所以这句话(我有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;

}
私有字符串getResultStr()
{
/***局部变量***/
字符串缓冲结果;
字符串用户输入;
整数位数;
整数计数;
字符串finalResult=“”;
数字串;
/***实例化***/
结果=新的StringBuffer();
/***提取数字(如果有)***/
userInput=txtInput.getText();
追加(用户输入);
计数=0;
while(countif(result.charAt(i)>='0'| | result.charAt(i)您的if语句:
if(result.charAt(i)>='0'| | result.charAt(i)='0'&&result.charAt(i)您从哪里开始迭代
for(inti=0;i
然后得到

result.insert( i - 1, digitAsStr );
你的线路

result.insert( i - 1, digitAsStr );

在迭代中,0将尝试访问-1处的索引。

哪一行导致了错误?(顺便说一句,在询问stackoverflow之前,您应该仔细检查一下!)非常感谢修复我错误的人,我现在只需要担心在显示中获得正确的输入!!!非常感谢