我想检索某人作为字符串输入的引号中的任何内容。我假设我需要在 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 = "";
}
}
}