快速打印Java字符串/toString,在每行上打印一个字符

3

我需要将一个字符串拆分成单个字符并每行打印出来。

我应该使用for循环,对吧?

    public String toString(){
    for (int count=0; count < password.length(); count++)
    {
        System.out.print(password.charAt(count));
        System.out.print("\n");

    }
    return password; // I am confused on this. I don't want it to 
                       //return anything, really but I cannot make return type void



}

我有一个方法,但总是出现NullPointExceptions。在该方法之上,我存储了来自输入的密码,并且变量在类中被定义。所以我想应该从那里提取它。

我的问题是:如何将一个字符串的每个字符打印出来,每个字符占一行?


3
如果您不需要帮助,请删除您的问题。 - millimoose
1
为了更快地获得更好的帮助,请发布一个SSCCE - Andrew Thompson
我需要帮助。如何逐行打印字符串中的字符? - user1176922
5个回答

8
这将完成工作:
String s = "someString";
for (int i = 0; i < s.length(); i++) {
    System.out.println(s.charAt(i));
}

有没有办法从另一个方法中获取字符串?这是一个密码。我已经有一个isValid()方法来测试密码了。 - user1176922
没事了,我搞定了 :) 谢谢!6分钟后,我会接受答案。 - user1176922
好的,那么你可能会接受别人的答案,因为我认为它们更适合你的目的并且解释得更清楚!;) - mtsz

4

首先,“toString”是一个糟糕的函数名称,因为它是每个对象都可用的标准方法之一。这就是为什么将其返回类型设置为“void”会导致编译错误。至于在每行打印一个字符:

public void printStringChars(String password) {
    if(password == null) {
        return;
    }

    for (int count=0; count < password.length(); count++) {  
        System.out.println(password.charAt(count));
    }

}


3

不需要for循环。 :)

一行代码就可以实现你的目标:

System.out.println(yourString.replaceAll(".", "$0\n"));

2
如果您不想返回任何内容,那么您真的不应该覆盖 toString() 方法。您可能应该拥有一个单独的方法,例如:
public void printToConsole() {
    for (int count=0; count < password.length(); count++) {
         System.out.println(password.charAt(count));
    }
}

然而,那不是你问题的原因——我怀疑问题出在`password`为空。但你并没有展示出你尝试获取它的地方...

0

你也可以做到这一点

import java.util.Scanner;

class que22 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("enter here your string");

        String a;

        a = input.nextLine();

        for (int i = 0;i < a.length(); i++ ) {
            System.out.println(a.charAt(i));
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接