java 怎么打印字符串_如何在Java中向后打印多个字符串

我试图获取一个充满字符串的文件,阅读它,然后打印出一些东西:

>字符串

>字符串向后AND大写

>字符串长度

还有一些东西,但我还没有达到这一点,并且不想让任何人完全为我编写代码.在搞乱了一段时间之后,我几乎完成了它(我相信,除了一些区域).

绊倒我的那块是向后的词.我们需要使用prinf将输出整齐地放入列中,但如果我一次读取每个char,我就不能这样做.所以我尝试设置一个String backwardsWord =“”;并添加每个字符.

这是绊倒我的那件事:

for(int i = upperCaseWord.length() - 1; i >= 0; i--)

{

backwardsWord += (upperCaseWord.charAt(i) + "");

}

我的问题是,当我打印它时,第一个单词正常工作.但是,之后的每个单词都会添加到上一个单词中.

例如:如果我向后打印猫,狗和老鼠,它会显示出来

TAC

TACGOD

TACGODTAR

我显然想要它阅读

TAC

GOD

TAR

任何帮助,将不胜感激.

解决方法:

看起来你的变量backwardsWord总是附加一个字符,而不是在单词之间重置.最简单的解决方法是通过将其设置为空字符串来清除循环之前的backwardsWord.

backwardsWord = ""; //Clear any existing characters from backwardsWord

for(int i = upperCaseWord.length() - 1; i >= 0; i--)

{

backwardsWord += (upperCaseWord.charAt(i) + "");

}

如果你一次构建一个String一个字符,那么你将使用大量内存,因为Java Strings are immutable.

为了更有效地使用StringBuilder而不是这样做.这是为了像你正在做的那样建立角色.完成后,可以使用toString方法获取String.

StringBuilder builder = new StringBuilder(); //Creates the String builder for storing the characters

for(int i = upperCaseWord.length() - 1; i >= 0; i--)

{

builder.append(upperCaseWord.charAt(i)); //Append the characters one at a time

}

backwardsWord = builder.toString(); //Store the finished string in your existing variable

这具有每次重置backwardWord的额外好处.

最后,由于你的目标是反向获取字符串,我们实际上可以在没有循环的情况下完成它as shown in this answer

backwardsWord = new StringBuilder(upperCaseWord).reverse().toString()

这将创建一个带有来自upperCaseWord的字符的新StringBuilder,反转字符然后将最终字符串存储在backwardsWord中

标签:java,string,for-loop,reverse

来源: https://codeday.me/bug/20190725/1532979.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值