识别字符串JAVA中的单个单词

时间:2013-10-14 18:45:58

标签: java string variables substring

我的项目让用户输入三个单词,全部在一行中,(大于两个字符),例如:一个二三,将每个单词切掉一些字母(具体见下文),最后合并修改后的单词成为一个大词。

我用伪代码写了全部内容,但是我遇到了一个问题,就是如何使用子字符串方法确定一个单词何时结束,下一个单词是否开始。我认为我能做的就是以某种方式识别单词之间的空间,并将其作为突破点。我可以使用某种if语句吗?就像“if(nextchar ='')开始存储在下一个变量中一样?并且在while循环中适合所有这些?

如果我把它弄得太混乱了,这就是我教授给我的任务。请不要只给我答案,我宁愿指出正确的方向并弄明白。

  1. 提示用户输入三个单词,以空格分隔。输入单词作为字符串。
  2. 将第一个单词中的所有字符(第一个单词除外)与第二个单词中的所有字符连接在一起 单词,除了第一个和最后一个包含第三个单词中的所有字符,除了最后一个单词。打印此字符串和 只有这个字符串输出。为了简单起见,您可以假设用户输入的每个单词至少有 两个字符(你不必检查这个)。例如,如果输入的三个单词是“fun”,“With”, “字符串”,那么此步骤的输出应为“unitString”。提示:对此步骤使用substring()方法。另一个 提示:将子串存储在三个新的String变量中,因此最终不会更改三个原始单词。
  3. 谢谢!

3 个答案:

答案 0 :(得分:4)

使用myString.Split(" ");

代码与文本的比率非常低。请修改rules以供将来参考。

更多point

  

要求代码的问题必须表明对正在解决的问题的最小理解。包括尝试的解决方案,它们不起作用的原因以及预期的结果。

最后,请关注此checklist以了解您的下一个问题。否则,如果人们注意到这是一种反复出现的行为,你的接收会更糟糕。

答案 1 :(得分:1)

首先创建一个Scanner来阅读输入:

Scanner s = new Scanner(System.in);

然后这些来读取用户的三个输入(一个接一个地输入):

first = s.nextLine();
second = s.nextLine();
third = s.nextLine();

最后,使用substring作为您的教授描述:

firstProcessed = first.substring(1, first.length - 1); 

这将获得第一个输入单词,并将其从第二个字符切片到倒数第二个字符。

希望你能完全接受它。

答案 2 :(得分:0)

我会查看以下内容:String.substring()命令或StringTokenizer类。

String.subString()将允许您根据indeces中断输入。您可以搜索空格的空格并从它们之间返回子串。

StringTokenizer将允许您通过分隔符将String分解为标记,即您可以使用“”作为分隔符,并且标记生成器会将字符串分隔为空格之间的标记。