当前位置: 首页 > 面试题库 >

如何获得用户输入的字符串中“”之间的含义?爪哇

王经赋
2023-03-14
问题内容

我想检索有人作为字符串输入的引号中的任何内容,我假设它是我需要的子字符串,但我不确定如何使用。

当用户输入由单词和数字混合而成的字符串时,它们之间用一个空格隔开:嘿110说“我不太擅长Java”,但“我会很好地钓鱼”

然后,我希望能够采用“我不太擅长Java”和“我能很好地钓鱼”并打印出引号内的内容,以便字符串中可以有多个引号。现在我有if(userInput
==’“”)然后我用子字符串做些什么,但我不确定。

我不能使用split,trim,tokenizer,regex或任何会使此变得非常简单的东西。

在此方法中,所有这些都是我尝试确定字符串中的某些内容是单词,数字还是引号:

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+=" ";
        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)=='"')
                {
                    String quote=(userInput.substring(index,);

                }
                }
                //if it is then parse that character into an integer and assign it to num
                num=Integer.parseInt(empty);
                word=wordBuilder;


                empty="";
                wordBuilder="";
            }


        }

    }


}

谢谢!


问题答案:

我不确定这是否正是您所需要的,但是它将逐步删除引用的部分…

String quote = "I say: \"I have something to say, \"It's better to burn out then fade away\"\" outloud...";

if (quote.contains("\"")) {

    while (quote.contains("\"")) {
        int startIndex = quote.indexOf("\"");
        int endIndex = quote.lastIndexOf("\"");
        quote = quote.substring(startIndex + 1, endIndex);
        System.out.println(quote);
    }

}

哪个输出…

I have something to say, "It's better to burn out then fade away"
It's better to burn out then fade away

更新

我不知道这是不是在欺骗…

String quote = "I say: \"I have something to say, \"It's better to burn out then fade away\"\" outloud...\"Just in case you don't believe me\"";

String[] split = quote.split("\"");
for (String value : split) {
    System.out.println(value);
}

哪个输出…

I say: 
I have something to say, 
It's better to burn out then fade away

 outloud...
Just in case you don't believe me

更新

好,假的 String#split

StringBuilder sb = new StringBuilder(quote.length());
for (int index = 0; index < quote.length(); index++) {
    if (quote.charAt(index) == '"') {
        System.out.println(sb);
        sb.delete(0, sb.length());
    } else {
        sb.append(quote.charAt(index));
    }
}

更新

好吧,这基本上是split带有选择的假货…

String quote = "blah blah 123 \"hello\" 234 \"world\"";

boolean quoteOpen = false;
StringBuilder sb = new StringBuilder(quote.length());
for (int index = 0; index < quote.length(); index++) {
    if (quote.charAt(index) == '"') {
        if (quoteOpen) {
            System.out.println("Quote: [" + sb.toString() + "]");
            quoteOpen = false;
            sb.delete(0, sb.length());
        } else {
            System.out.println("Text: [" + sb.toString() + "]");
            sb.delete(0, sb.length());
            quoteOpen = true;
        }
    } else {
        sb.append(quote.charAt(index));
    }
}
if (sb.length() > 0) {
    if (quoteOpen) {
        System.out.println("Quote: [" + sb.toString() + "]");
    } else {
        System.out.println("Text: [" + sb.toString() + "]");
    }
}

产生…

Text: [blah blah 123 ]
Quote: [hello]
Text: [ 234 ]
Quote: [world]

知道,我不知道您如何存储结果。我很想创建一些能够存储String结果并将其添加到a的基本类,List以便我可以维持顺序,并可能使用某种类型的标志来确定它们是什么类型…



 类似资料:
  • 问题内容: 我尝试创建一个计算器,但由于不知道如何获得用户输入而无法使它工作。 如何获得Java中的用户输入? 问题答案: 你可以根据要求使用以下任何选项。 Scanner class BufferedReader and InputStreamReader classes DataInputStream class 该类中的方法已被弃用。若要获取值,应将先前的解决方案与一起使用 Console

  • 如何实现返回两个字符之间的字符列表的函数? PS:我知道如何做类似的事情有多种答案,但所有这些答案都只适用于获得第一个实例,而不是所有事件。

  • 用户输入一个值,例如、、等 Java当然用反斜杠对上述字符进行转义。因此,应用程序在缓冲区中有以下字符串 、、 现在如何将这些字符串转换回、、 我可以写一个< code>switch语句。但是有无限多的选择 如果用户输入一些unicode字符怎么办? 这不起作用 如何解释用户输入的转义字符?

  • 问题内容: 当我仅具有对该INPUT的引用时,需要获得对该INPUT的FORM父级的引用。JavaScript有可能吗?如果愿意,请使用jQuery。 这不起作用: 问题答案: 作为输入的本机DOM元素还具有指向它们所属形式的属性: IE 4.0+,Firefox 1.0+,Opera9.0+支持输入字段的属性,这是jQuery保证的更多浏览器,因此您应该坚持这一点。 如果这是另一种类型的元素(不

  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我需要一个函数来返回两个单词(或两个字符)之间的子字符串。我想知道是否有实现该功能的php函数。我不想考虑正则表达式(嗯,我可以做一个,但实际上并不认为这是最好的方法)。思维与功能。这是一个例子: 我们调用该函数: 它返回:“我想要一个蛋糕”。 提前致谢。 更新: 嗯,到

  • 主要内容:关于 Python 2.xinput() 是 Python 的内置函数,用于从控制台读取用户输入的内容。input() 函数总是以字符串的形式来处理用户输入的内容,所以用户输入的内容可以包含任何字符。 input() 函数的用法为: str = input(tipmsg) 说明: str 表示一个字符串类型的变量,input 会将读取到的字符串放入 str 中。 tipmsg 表示提示信息,它会显示在控制台上,告诉用户应该