如何在输入的字符串中找到“”之间的内容?

时间:2013-09-06 18:16:20

标签: java string iteration

我想检索有人以字符串形式输入的内容。我假设我需要在if语句中设置一个布尔值并对其做一些事情,但我不确定如何。

当用户输入混合了单词和数字的字符串时,所有字符串都用一个空格分隔:

 hey 110 say "I am not very good at Java" but " I can fish pretty well"

我想确定什么是单词,什么是数字以及引号内的内容 我在报价部分遇到问题

我希望能够取"I am not very good at Java""I can fish pretty well"并打印出引号内的内容,但字符串中可以有多个引号。

我无法使用

  • 拆分,
  • 饰件,
  • 标记生成器,
  • 正则表达式,
  • 或者任何能让这件事变得非常简单的事情,我也无法扫描这两次,所以在我的内部使用循环如果不理想。

以下是我现在的情况。这就是我在这个方法中尝试识别字符串中的某些东西是单词,数字还是引用:

class Bean {
    int num;
    String word;
    String quote;
    String userInput;

    public Bean(String userInput)//
    {
        num=0;// initializing used variables and fields
        this.userInput=userInput;
    }

    public void set(String userInput)// method set returns void
    {
        num=0;// reset each variable so new input can be passed

        String empty="";
        String wordBuilder="";
        userInput+=" ";
        String quoteBuilder="";
        boolean quote=false;

        for(int index=0; index<userInput.length(); index++)// goes through each character in string
        {

            if(Character.isDigit(userInput.charAt(index)))// checks if character in the string is a digit
            { 
                empty+=userInput.charAt(index);
            }
            else {
                if (Character.isLetter(userInput.charAt(index))) {
                    wordBuilder += userInput.charAt(index);
                } else {
                    if (userInput.charAt(index) == '"') {
                        quote = true;
                    }

                    if (quote = true) {
                        quoteBuilder += userInput.charAt(index);
                    }
                }
            }
            //if it is then parse that character into an integer and assign it to num
            num = Integer.parseInt(empty);
            word = wordBuilder;

            empty = "";
            wordBuilder = "";
        }
    } 
}

0 个答案:

没有答案