gpt4 book ai didi

java - java 字符串生成器

转载 作者:行者123 更新时间:2023-12-01 22:42:33 30 4
gpt4 key购买 nike

我正在尝试存储一个字符串并判断它是大写/小写字母还是数字,如果字符是小写字母,则重新显示大写字符,如果字符是大写字母,则重新显示小写字符如果字符是数字,则将其显示为星号。我可以用数字来实现,但如果我为字母添加 .toString().toLowerCase() 或 .toUpperCase() ,程序就会不断循环。我该怎么办?

public class CharacterArray {
public static void main(String[] args) {
StringBuilder input = new StringBuilder("800 Test St NY");
for (int i = 0; i < input.length(); i++) {
System.out.println(input.charAt(i));

if(Character.isDigit(input.charAt(i))){
input.replace(i,i+1,"*");
}
else if(Character.isUpperCase(input.charAt(i))) {
input.replace(i, i+1,input.toString().toLowerCase());
}
else if(Character.isLowerCase(input.charAt(i))) {
input.replace(i, i+1,input.toString().toUpperCase());
}
System.out.println(input);
}
}
}

最佳答案

当你这样做时:

input.replace(i, i+1, input.toString().toLowerCase());

您正在用整个字符串(小写)替换一个字符,使输入变得越来越长,因此您永远无法到达末尾。

相反:

input.replace(i, i+1, input.substring(i,i+1).toLowerCase());

与转换为大写字母的位置类似。

编辑:修复了将错误的参数类型传递给replace的问题。

Volune 的答案看起来更好。使用它。

关于java - java 字符串生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25922801/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com