当前位置: 首页 > 知识库问答 >
问题:

我对java是完全陌生的,想知道是否有任何方法可以改进这个程序

苏雅珺
2023-03-14
import java.util.Scanner;

public class Main
{
    public static void main(String[] args) 
    {
        String fls = "FALSE";
        String tr = "TRUE";
        Scanner stringWord = new Scanner(System.in);
        System.out.print("Enter the string you wish to convert: ");
        String example = stringWord.nextLine();
        Scanner whiteSpaceOrNo = new Scanner(System.in);
        System.out.print("\nTrue or false, you want to ignore whitespace: ");
        String whiteSpace = whiteSpaceOrNo.nextLine();
        System.out.print("\n");
        if(whiteSpace.toUpperCase().equals(fls))
        {
            for(int i = 0; i < example.length()+1; i++)
            {
                if(i < example.length())
                {
                   System.out.println(example.substring(0, i + 1));
                }
                else
                {
                   for(int f = example.length(); f > 0; f--)
                   {
                       System.out.println(example.substring(0, f-1));
                   }
                }
            }
        }
        else if (whiteSpace.toUpperCase().equals(tr))
        {
            for(int d = 0; d < example.length(); d++)
            {
                if(example.charAt(d) != ' ')
                {
                    System.out.println(example.substring(0, d+1));
                }
                if(d == example.length() - 1)
                {
                    for(int x = example.length() - 1; x >= 0; x--)
                    {
                        if(example.charAt(x) != ' ')
                        {
                            System.out.println(example.substring(0, x+1));
                        }
                    }
                }
            }
        }
        else
        {
            System.out.println("Incorrect response, restart program");
        }
    }
}

共有1个答案

寿亦
2023-03-14

建议的改进:

  1. UI
    1. 将用户的查询和输出放在一个循环中,这样用户就不必每次都重新启动应用程序
    2. 当一个简单的Y或N(或yes或no)就可以时,不要要求用户键入true或false。因此,您的查询将是:“忽略空白(Y/N)?”
    3. 要获得额外的分数,请在GUI上工作。
    1. 不需要嵌套循环。这可以在以i 结尾的i-循环(在第一部分中,不忽略空白)之后取出并运行。
    2. 你所说的“忽略空白”是指从你正在构建的整个金字塔中,还是只是没有在末尾有空白字符的线条?如果是后者,则需要修复您的用户查询;如果是前者,则需要修复代码
      null

 类似资料:
  • 我必须在此处显示tableView中的所有数据,但其他细节不适合设备的大小。 正如您所看到的,除了“项目详细信息”之外,这些信息是可读的。但是客户给我说,“项目细节”可能比设备屏幕(iPhone o iPad||横向或纵向)更长。 如果项目详细信息的字符串比设备屏幕长,那么显示这些信息的最佳方法是什么?

  • 问题内容: 每次我运行使用Flask-SQLAlchemy的应用程序时,都会收到以下警告,提示该SQLALCHEMY_TRACK_MODIFICATIONS选项将被禁用。 我试图找出此选项的作用,但是Flask-SQLAlchemy文档尚不清楚该跟踪的用途。 · 如果设置为True(默认值),Flask-SQLAlchemy将跟踪对象的修改并发出信号。这需要额外的内存,如果不需要,可以将其禁用。

  • 这两个代码的行为都会在值不存在时引发异常。 我想知道这两个代码之间的区别。

  • 我遇到了一些问题,AppEngine抱怨我的代码有Java1.8方法,而AppEngine需要Java1.7。下面是错误跟踪。我不知道该怎么修理它。

  • 问题内容: 是否可以 不 尝试加载就知道是否已加载Java类?尝试加载该类,但我不希望出现这种副作用。还有另一种方法吗? (我不想覆盖类加载器。我正在寻找一个相对简单的方法。) 问题答案: (感谢Aleksi)此代码: 产生: 请注意,示例类不在软件包中。完整的二进制名称是必需的。 二进制名称的一个示例是

  • 问题内容: 我有一个名为的方法的对象,该方法启动三个线程。 每个线程执行完毕后,如何获得通知? 有没有办法知道一个(或全部)线程是否已完成或仍在执行? 问题答案: 你可以通过多种方式执行此操作: 在主线程中使用以阻塞方式等待每个线程完成,或者 以轮询方式(通常不鼓励使用)检查,等待每个线程完成,或者 非常规的,对于每个有问题的线程,调用来调用对象中的方法,并对每个线程进行编程以在完成时抛出未捕获的