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

Java 如何查找字符串中的所有字符对,java,string,char,Java,String,Char,对于我在课堂上做的项目,我得数一数。 例如,如果输入为此行: ab ab. 总共有6个日记。 它们是: "ab", "b ", " a", "ab", "b." and ".\n" 如何逐个字符扫描输入字符并找到所有的diad? 我目前拥有的是: int i=0; while(input.hasNext()){ char c = input.next().charAt(i); i++; System.out.println(c); } 但是,一次只能从字符串中打印出

对于我在课堂上做的项目,我得数一数。 例如,如果输入为此行:

ab ab.
总共有6个日记。 它们是:

"ab", "b ", " a", "ab", "b." and ".\n"
如何逐个字符扫描输入字符并找到所有的diad? 我目前拥有的是:

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

但是,一次只能从字符串中打印出一个字符。有人能帮我修改代码吗?

当行完全读取后,您应该在字符上迭代,而不是使用扫描仪,如下所示:

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);
}

对,您可能想将其视为伪代码,因为我不使用Java编程,但无论使用哪种语言,逻辑都是相同的

您希望将先前读取的字符保存在一个单独的变量中,以便可以将其加入当前读取的字符,从而将其转换为diad

我们在第一个循环中什么都不做,所以我们有两个字符开始。这就是如果p='\0'继续;这是给你的


你用什么语言?C++?此外,解决此问题不需要正则表达式。如果没有,它很容易解决。你应该把整行内容读入一个字符串对象,然后使用字符串操作函数找到所有的diad。那么我应该在while循环的条件下放置什么呢?我在他的问题中没有看到任何正则表达式。你呢@AeroX@Pier-AlexandreBouchard检查问题编辑历史记录
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);
}