如何查找字符串中的所有字符对

时间:2014-11-17 14:13:45

标签: java string char

对于我在课堂上的项目,我必须计算一下这个项目 例如,如果输入是这一行:

ab ab.

总共会有6个朋友 这是:

"ab", "b ", " a", "ab", "b." and ".\n"

如何通过char扫描输入char并查找所有diad?
我现在拥有的是:

int i=0;
while(input.hasNext()){
    char c = input.next().charAt(i);
    i++;
    System.out.println(c);
}

但是,这只能一次打印出一个字符串。任何人都可以帮我修改我的代码吗?

2 个答案:

答案 0 :(得分:0)

一旦完全阅读该行而不是使用Scanner,您应该对您的字符进行迭代,如下所示:

String input = "ab ab.\n";

for(int i = 0; i < input.length() - 1; i++){
   String c = "" + input.charAt(i) + input.charAt(i + 1);
   System.out.println(c);
}

答案 1 :(得分:0)

对,您可能希望将其视为伪代码,因为我不是用Java编程,但无论语言如何,逻辑都是相同的。

您希望将先前的char读取保存在单独的变量中,以便您可以将其连接到当前读取的char以将其转换为diad。

我们在第一个循环中什么都不做,所以我们有2个字符开始。这就是if (p == '\0') continue;的用途。

int i = 0;
char p, c = '\0';
while (input.hasNext())
{
    p = c;
    c = input.next().charAt(i++);
    if (p == '\0') continue; // Check that p is not null (so that we have 2 chars)

    System.out.println("{0}{1}", p, c);
}