2013-10-14 42 views
-3

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

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

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

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

谢谢!

+1

文字的圣墙回来了。 –

+0

尝试你认为将使用子串方法,然后发布任何问题/错误。如果您在发布求助信息之前尝试了您认为可能会发挥作用的内容,那么您会帮助自己。 – scrappedcola

+0

这个问题本来可以说得更好,但我并不认为有必要在初学者(他可能对社区不熟悉)上加入,并最终阻止他/她成为其中的一员。对社区规范和他/她的问题的温和指导是可取的。 – Vidya

回答

0

首先创建一个Scanner读取输入:

Scanner s = new Scanner(System.in); 

然后将这些以从用户读取的三个输入端(输入陆续一行):

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

最后,使用substring正如你的教授所述:

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

这个得到第一个输入单词并将它从第二个字符切换到倒数第二个字符。

希望你可以把它放在其余的路上。

+0

感谢您的回复。我应该在一行中输入,而不是三个。这就是我的问题来自何处。 – coinbird

+0

然后读取一行,并调用line.split(“”)。这将产生一个三元素数组。然后您按上面所述处理这些字符串。或者@Vae建议,您也可以使用StringTokenizer http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html – Vidya

3

使用myString.Split(" ");

到文本比的代码是awefully低。请修改rules以备将来参考。

更重要的point

问题要求代码必须表现出对问题的理解最小正在解决。包括尝试解决方案,为什么他们没有工作,以及预期的结果。

最后,按照这个checklist为您的下一个问题。否则,如果人们注意到这是反复发生的行为,你会有更糟糕的接待。

+0

我明白这个问题。我甚至用我自己的话来解释,除了张贴我的导师解释。 我在网站周围搜索,但有关键字的问题。我不断回到所谓的“分裂”,但我们还没有知道,所以我不想惹它。 我包含了一些我认为是相关的代码片段,但在实践中遇到了麻烦。 – coinbird

+0

作为一名程序员,你的整个职业生涯都将由'搞砸'组成。看看它在官方文档中的作用并开始尝试,没有更好的学习方式。不要让球场的速度压制你,也没有什么不好的。 –

0

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

String.subString()将允许您基于indeces打破您的输入。您可以搜索空格的空白并从它们之间返回子字符串。

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