-1

我想检索某人作为字符串输入的引号中的任何内容。我假设我需要在 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"打印引号内的内容,但字符串中可以有多个引号。

我无法使用

  • 分裂,
  • 修剪,
  • 分词器,
  • 正则表达式,
  • 或者任何可以使这变得非常容易的事情,不幸的是我也无法扫描两次,所以在我的 if 中使用循环并不理想。

以下是我现在所拥有的。在这个方法中,我尝试识别字符串中的某些内容是单词、数字还是引号:

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 = "";
        }
    } 
}
4

0 回答 0