-3

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

我用伪代码把它全部写出来,但是我在找出如何使用 substring 方法来确定一个单词何时结束以及下一个单词何时开始时遇到了问题。我想我能做的就是以某种方式识别单词之间的空间,并将其作为断点。我可以使用某种 if 语句吗?就像“if (nextchar = ' ') 开始存储在下一个变量中?并将所有内容放入 while 循环中?

如果我把它弄得太混乱了,这是我的教授给我的作业。请不要只给我答案,我宁愿指出正确的方向并弄清楚。

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

谢谢!

4

3 回答 3

4

采用myString.Split(" ");

代码与文本的比率非常低。请修改规则以供日后参考。

更重要的

要求代码的问题必须表明对要解决的问题的最低理解。包括尝试的解决方案、为什么它们不起作用以及预期的结果。

最后,请按照此清单回答您的下一个问题。否则,如果人们注意到这是反复出现的行为,您的接收会更糟。

于 2013-10-14T18:47:16.563 回答
1

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

Scanner s = new Scanner(System.in);

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

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

最后,要使用您的教授所描述的子字符串:

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

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

希望你能接受剩下的路。

于 2013-10-14T18:56:16.017 回答
0

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

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

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

于 2013-10-14T18:51:31.477 回答