我正在尝试在句子中输入第二个单词。我确定了第一个单词,我很难找到如何获得第二个单词。这就是我尝试过的:
String strSentence = JOptionPane.showInputDialog(null,
"Enter a sentence with at" + " least 4 words",
"Split Sentence", JOptionPane.PLAIN_MESSAGE);
int indexOfSpace = strSentence.indexOf(' ');
String strFirstWord = strSentence.substring(0, indexOfSpace);
/*--->*/String strSecondWord = strSentence.substring(indexOfSpace, indexOfSpace);
Boolean blnFirstWord = strFirstWord.toLowerCase().equals("hello");
Boolean blnSecondWord = strSecondWord.toLowerCase().equals("boy");
JOptionPane.showMessageDialog(null, "The sentence entered: " + strSentence
+ "\nThe 1st word is " + strFirstWord
+ "\nThe 2nd word is " + strSecondWord
+ "\nIs 1st word: hello? " + blnFirstWord
+ "\nIs 2nd word: boy? " + blnSecondWord);
答案 0 :(得分:1)
您正在从第一个空格到第一个空格(它将为空)中的第二个单词。我建议你把它带到第二个空间或结束。
int indexOfSpace2 = = strSentence.indexOf(' ', indexOfSpace+1);
String strSecondWord = strSentence.substring(indexOfSpace+1, indexOfSpace2);
如果你可以使用拆分,你可以
String[] words = strSentence.split(" ");
String word1 = words[0];
String word2 = words[1];
答案 1 :(得分:1)
int indexOfSpace = strSentence.indexOf(' ');
String strFirstWord = strSentence.substring(0, indexOfSpace);
strSentence = strSentence.substring(indexOfSpace+1);
indexOfSpace = strSentence.indexOf(' ');
String strSecondWord = strSentence.substring(0, indexOfSpace);
strSentence = strSentence.substring(indexOfSpace+1);
indexOfSpace = strSentence.indexOf(' ');
String strThirdWord = strSentence.substring(0, indexOfSpace);
答案 2 :(得分:0)
第一个单词定义为句子开头和第一个空格之间的文本,对吗?所以String strFirstWord = strSentence.substring(0, indexOfSpace);
可以帮到你。
类似地,第二个单词被定义为第一个空格和第二个空格之间的文本。 String strSecondWord = strSentence.substring(indexOfSpace, indexOfSpace);
在第一个空格和第一个空格(这是一个空字符串)之间找到文本,这不是你想要的;你想要第一个空格和第二个空间之间的文字......
答案 3 :(得分:0)
我会使用正则表达式:
String second = input.replaceAll("^\\w* *(\\w*)?.*", "$1");
这可以通过匹配整个输入,同时捕获第二个单词并将匹配的内容(即所有内容)替换为第1组中捕获的内容。
重要的是,正则表达式是精心设计的,所有内容都是可选的,这意味着如果没有第二个单词,则会产生空白结果。这也适用于空白输入的边缘情况。
另一个优点是它只是一行。
答案 4 :(得分:0)
您可以使用split()
类的String
方法。它使用模式分配字符串。例如:
String strSentence = "word1 word2 word3";
String[] parts = strSentence.split(" ");
System.out.println("1st: " + parts[0]);
System.out.println("2nd: " + parts[1]);
System.out.println("3rd: " + parts[2]);