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

如何逐个字母打印Java中的字符串,在每个字符之间添加一个星号,而不需要循环(递归)?

索锐藻
2023-03-14

函数如下:

public static String allStar(String a) {

我也做了同样的事:

int n = a.length(); // to get length of the string to use somehow.
                    // But I'm not sure how to actually apply it. 

我还使用了charat()函数,但这可能只能在循环中工作。

请帮忙解释一下怎么做

共有2个答案

尹晟
2023-03-14

试试看,首先将字符串拆分为每个字符的字符串数组,然后在它们之间加上一个*字符。

System.out.println(String.join("*",  a.split("")));
澹台玉石
2023-03-14

Beshambher的回答是一种干净利落、简单易行的方法。但如果要递归执行,则:

public static String allStar(String a) {
    if(a == null || a.isEmpty()) {        
        return "";
    }

    if(a.length() == 1) {
        return a;
    }        
    return  a.charAt(0) + "*" + allStar(a.substring(1));
}
 类似资料:
  • 我想从多个单词打印第一个字符,这个单词来自api,像DisplayName:arwa othman。我想打印(a)和(o)这封信。有人能帮我吗??

  • 问题内容: 目的: 在Golang中的字符串中每x个字符插入一个字符 输入: 预期产量: 尝试次数 尝试一次 结果是: 尝试两次 计算字符数 对于循环 如果X = 5,则插入一个 尝试三 扫描结合加入 问题 目前尝试两次和三次不包含代码段的原因是,我仍在思考应该使用哪种方法在Golang中的字符串中每X个字符插入一个字符。 问题答案: https://play.golang.org/p/HEGbe

  • 问题内容: 假设我们有类似的东西: 我想将“ someText”替换为其他内容。考虑到我不知道someText可能是什么(任何字符串)并且我所知道的是它将被&firstString =和&endString =包围的事实,最佳方法是什么? 编辑:对不起,看起来这还不够清楚。我不知道“ someText”可能是什么,我仅有的信息是它将位于&firstString =和&endString =之间 我

  • 本文向大家介绍我们如何在Java字符串中的每个大写字母之前添加下划线?,包括了我们如何在Java字符串中的每个大写字母之前添加下划线?的使用技巧和注意事项,需要的朋友参考一下 使用StringBuffer类 使用StringBuffer在字符串的每个大写字母之前添加下划线- 创建一个空的StringBuffer对象。 Character类的isUpperCase()方法接受一个字符并验证其是否为大

  • 问题内容: 我想知道如何逐字地遍历一个字符串。 上面给出了输出: 但是我正在寻找以下输出: 问题答案: 当你做- 您不是在遍历字符串中的单词,而是在遍历字符串中的字符。要遍历单词,您首先需要使用将字符串拆分成单词,然后遍历该单词。范例- 请注意,,且不传递任何参数,所有空格都将其分割(空格,多个空格,制表符,换行符等)。