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

有没有办法让数组中的单独行字符在控制台面板的一行上输出?

苏畅
2023-03-14

我用Java编写了一些代码,但在控制台面板中的字符输出都在一行中时遇到了问题。。。

这是密码

import java.util.ArrayList;
import java.util.List;

public class Main {
    
    public static void main(String[] args) {
        String sample = ("Hello World!");
        List<Character> colors = new ArrayList<>();
        for(int i=0;i<sample.length();i++) {
        
        colors.add(sample.charAt(i);
        System.out.println(colors);
        }
    }
}

运行代码时的输出如下所示:

[H]
[H, e]
[H, e, l]
[H, e, l, l]
[H, e, l, l, o]
[H, e, l, l, o,  ]
[H, e, l, l, o,  , W]
[H, e, l, l, o,  , W, o]
[H, e, l, l, o,  , W, o, r]
[H, e, l, l, o,  , W, o, r, l]
[H, e, l, l, o,  , W, o, r, l, d]
[H, e, l, l, o,  , W, o, r, l, d, !]

非常感谢任何帮助...

共有3个答案

宋勇
2023-03-14

如果不希望将字符数组打印为单独的字符,请不要使用println(数组)。相反,要么编写一个循环来打印每个字符,而不添加任何内容,要么转换为字符串。

public class Main {    
    public static void main(String[] args) {
        String sample = ("Hello World!");
        for (int i=0; i<sample.length(); i++) {
            System.out.print(sample.charAt(i));
        }
        System.out.println();
    }
}

上面的方法本身就不太有用,因为除了把字符串拆开并打印每个字符之外,你什么都不用做。但话说回来,我不明白你的意图。也许你想打印越来越长的字符串

public class Main {    
    public static void main(String[] args) {
        String sample = ("Hello World!");
        for (int i=2; i<=sample.length(); i++) {
            System.out.println(sample.substring(0, i));
        }
    }
}

在第二个示例中,i是未打印的第一个字符的索引(即,超过末尾的一个字符),由于我假设您不希望打印长度为零的字符串,因此计数从2开始。

莫骞仕
2023-03-14

也许你想

import java.util.ArrayList;
import java.util.List;

public class Main {
    
    public static void main(String[] args) {
        String sample = ("Hello World!");
        List<Character> colors = new ArrayList<>();
        for(int i=0;i<sample.length();i++) {
        
        colors.add(sample.charAt(i);
        }

        System.out.println(colors);
    }
}
柯波
2023-03-14

颜色是一个ArrayList,所以当您运行System.out.print(颜色)时,它使用ArrayList的默认toString实现,这是所有元素之间都有逗号,由[]包裹。

如果要将其作为常规语句打印,可以一次打印一个元素(colors.foreach(System.out::print)),也可以将其连接成字符串并打印

 类似资料:
  • 问题内容: 我正在尝试调试继承的程序。该程序包含字符串,数组列表和集合,类型之间的大量转换,并且我需要执行一些字符串操作(等)。 数据打印到控制台时 看起来 像字符串(例如,一行文本,如或),但是我的代码因各种错误而出错,这表明我强制转换为String的代码无法正常工作。 我想尝试弄清楚传入的数据类型,并留下我的方法来验证程序是否按预期运行。有什么办法可以找到Java中的字段类型?在一个理想的世界

  • 本文向大家介绍Rust 没有宏的控制台输出,包括了Rust 没有宏的控制台输出的使用技巧和注意事项,需要的朋友参考一下 示例 该std::io::Write特征是为接受字节流的对象设计的。在这种情况下,使用获取标准输出的句柄。std::io::stdout() Write::write()接受由字节&[u8]字面量(b"<string>")创建的字节片()。返回一个,其中包含写入的字节数(成功)或

  • 问题内容: 我们正在开发S60版本,该平台具有不错的Python API。 但是,关于Android上的Python尚无任何官方资料,但是由于Jython存在,有没有办法让蛇和机器人一起工作? 问题答案: 一种方法是使用: 开源Python库,用于快速开发利用创新用户界面的应用程序,例如多点触控应用程序。 可在和上运行。你可以在所有受支持的平台上运行相同的代码。

  • 问题内容: 如标题所述,是否有一种简单的方法可以将两列输出到Java中的控制台? 我知道,但是在使用printf时,我还没有找到基于特定列进行空间分配的方法。 问题答案: 使用宽度和精度说明符,将其设置为相同的值。这将填充太短的字符串,并截断太长的字符串。“-”标志将使列中的值左对齐。

  • 编程新手,如果这是个愚蠢的问题,我深表歉意。 当使用Scanner类时,我看不出是否有获取单个字符作为输入的选项。例如 上面的代码允许我将下一行拉入字符串,然后可以使用while或if语句使用.length()对其进行验证1,然后根据需要存储到字符中。 但是,有没有一种方法可以提取单个字符,而不是使用字符串然后进行验证?如果没有,有人能解释为什么这是不允许的吗?我认为这可能是由于类或对象与基本类型

  • 我正在验证银行的CAB代码。 规则是CAB必须是数字,由5位数字组成。我试图在Laravel 5.3中的FormRequest类中验证这一点 我尝试这样设置验证: 它可以工作,但如果用户在这两个字符之间传递一个普通字符(非数字),则验证将通过,因为字符串长度不超过5个字符。所以这很糟糕。 我尝试这样设置验证: 但是如果用户通过55555,它将失败,因为该数字大于5。 我想知道是否有一种方法可以执行