格式设置有问题

时间:2019-09-13 02:15:11

标签: java

任务是编写一个程序,该程序可以将字符串缩短到10个字符以上。缩短是通过除去所有以一个单词或字符串开头的元音,然后除去所有相邻的重复字母来实现的。我已经设法编写了程序,但是在尝试按照作业分配的格式进行格式化时遇到了一些困难。我在计算元音和重复字母删除的数量时也遇到了麻烦。

我已经尝试在打印命令中设置格式,但这会给我带来不正确的结果,因为它们会重复多次文本。我还尝试为打印命令String x = System.out.print(x.charAt(d));指定一个字符串,但这没有用,并说我不能将void更改为字符串。

import java.util.Scanner;

class Main {
  public static void main(String[] args) {
    Scanner scan=new Scanner(System.in);
    String x = scan.nextLine();
    int d = 0;
    int vow = 0;
    int rep = 0;
    int tot = 0;
    if(x.length() >= 10){
        x = x.toLowerCase();
        while(d < x.length()){
            if(((x.charAt(d) == 'a' || x.charAt(d) == 'e' || x.charAt(d) == 'i' || x.charAt(d) == 'o' || x.charAt(d) == 'u') && (d > 0 &&x.charAt(d-1) != ' ')) || (d > 0 && x.charAt(d) == x.charAt(d-1))){
                d++;
            }else{
                (System.out.print(x.charAt(d)));
                d++;
            }
        }
    }else{    
        System.out.println("This doesn't need shortening!");
    }
  }
}

如果我输入“我将很快到达密西西比州”,则需要输出

Shortened message: i wl arv in mssp rly sn
Repeated letters removed: 6
Vowels removed: 11
Total characters saved: 17

但是现在我只能得到“ mssp rly sn中的i wl arv”,我不知道如何计算已删除的元音和重复变量。如果我尝试将代码中的(System.out.print(x.charAt(d)));更改为(System.out.print("Shortened message: " + x.charAt(d)));,我会得到

Shortened message: iShortened message: Shortened message: wShortened message: lShortened message: Shortened message: aShortened message: rShortened message: vShortened message: Shortened message: iShortened message: nShortened message: Shortened message: mShortened message: sShortened message: sShortened message: pShortened message: Shortened message: rShortened message: lShortened message: yShortened message: Shortened message: sShortened message: n

这是一堵奇怪的文字墙。我认为问题出在我如何打印它,但我不知道如何解决它。我当时以为将打印命令设置为字符串是可以的,但是我也不知道该怎么做。

0 个答案:

没有答案