Java 什么';这个报税表怎么了?

Java 什么';这个报税表怎么了?,java,Java,我刚开始不使用main方法,我开始用java编写leet代码,它们以特定的格式提供样板代码。我的逻辑很好,但由于某些原因,我没有返回正确的字符串。你们能帮我解决这个问题吗 class Solution { public String defangIPaddr(String address) { char[] newChar = new char[address.length()]; address.getChars(0, address.length(),

我刚开始不使用main方法,我开始用java编写leet代码,它们以特定的格式提供样板代码。我的逻辑很好,但由于某些原因,我没有返回正确的字符串。你们能帮我解决这个问题吗

class Solution {
    public String defangIPaddr(String address) {
        char[] newChar = new char[address.length()];
        address.getChars(0, address.length(), newChar, 0);

        for(int i = 0; i < address.length();i++) {
            if(newChar[i] == '.') {
                return "[.]";
            }else
                return Character.toString(newChar[i]);
        }
    }
}
类解决方案{
公共字符串devangipaddr(字符串地址){
char[]newChar=new char[address.length()];
address.getChars(0,address.length(),newChar,0);
for(int i=0;i

对于给定的输入
1.1.1.1
我希望作为输出
1[.]1[.]1[.]1

根据注释中的说明,使用
String#replaceAll
方法一次替换所有点,而不是试图单独替换每个点

String address = "1.1.1.1";
address = address.replaceAll("\\.", "[.]"); //replace all dots
System.out.println(address); //prints 1[.]1[.]1[.]1
如果您坚持自己进行替换,而不是弄乱一堆索引,只需从一开始就尝试重新创建字符串,将每个字符附加到一个
StringBuilder
,但如果它是一个点附加
[。]

String address = "1.1.1.1";
StringBuilder sb = new StringBuilder();
for (char c : address.toCharArray()) {
    if (c == '.')
        sb.append("[.]");
    else
        sb.append(c);
}
address = sb.toString();
System.out.println(address); //prints 1[.]1[.]1[.]1

逻辑不好,因为您似乎只返回输入字符串的第一个字符。您可以将字符串生成器用于解决方案,也可以仅使用将附加到的新字符串。样本:

类解决方案{
公共字符串devangipaddr(字符串地址){
char[]newChar=new char[address.length()];
address.getChars(0,address.length(),newChar,0);
StringBuilder sb=新的StringBuilder();
for(int i=0;i

我希望这能有所帮助。祝你好运

您需要定义“适当字符串”的含义。顺便说一下,您的循环将只执行一次迭代,因为它将返回,而不管第一次迭代时
newChar[i]
的值是多少。所以不清楚你到底想做什么。我假设您使用循环是有原因的。向我们展示测试,以便我们可以读取提供的输入和预期的输出。您当前的代码:如果地址包含“.”作为第一个字符返回“[.””,否则将第一个字符作为
字符串返回
-那么,您希望代码做什么?“我的逻辑很好,但由于某些原因,我没有返回正确的字符串。”输入:address=“1.1.1.1”输出:“1[.]1[.]1[.]1[.]1”如果该索引处的字符==。返回[.]否则从string@AaronDavidge正如我看到的,你是一个新用户。花点时间阅读。