Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将伪代码转换为java_Java_Arrays_String_Logic - Fatal编程技术网

无法将伪代码转换为java

无法将伪代码转换为java,java,arrays,string,logic,Java,Arrays,String,Logic,我从我的朋友那里得到了一些伪代码形式的测试代码。他请我帮忙在这里发帖 以下是伪代码: 函数g(string str)返回字符串 int i=0 字符串new_str=“” 而我

我从我的朋友那里得到了一些伪代码形式的测试代码。他请我帮忙在这里发帖

以下是伪代码:

函数g(string str)返回字符串
int i=0
字符串new_str=“”
而我
我曾尝试将其转换为Java语法,但在第20行和第32行中出现了一个错误,即:

不兼容类型:无法将字符串转换为字符串[]

下面是我编写的代码:

public class TestLogic{
    public  String g(String[] str){
        int i=0;
        String new_str = "";
        while(i < (str.length -1)){
            new_str += str[1 + i];
            i = i + 1;   
        }
        return new_str;
    }

    public String f(String[] str){
        if (str.length == 0) {
            return "";
        }
        else if (str.length == 1){
            return str.toString();
        }
        else {
            return f(g(str)) + str [0];
        }
    }

    public static String h (int n, String str){
        while(n!=1){
            if (n%2==0){
                n= n/2;
            }
            else{
                n =3*n +1 ;
            }
            str = f(str);
        }
        return str;
    }

    public static int pow(int x, long y){
        if (y==0) {
            return 1;
        }
        else{
            return x * pow(x, y-1);
        }
    }

    public static void main(String[] args) {
        System.out.print(h(1, "fruits"));
        System.out.print(h(2, "fruits"));
        System.out.print(h(5, "fruits"));
        System.out.print(h(pow(2, 1000000000000000l),"fruits"));
       System.out.print(h(pow(2, 9831050005000007l),"fruits"));

    }
}
公共类测试逻辑{
公共字符串g(字符串[]str){
int i=0;
字符串new_str=“”;
而(i<(str.length-1)){
new_str+=str[1+i];
i=i+1;
}
返回新的_str;
}
公共字符串f(字符串[]str){
如果(str.length==0){
返回“”;
}
else if(str.length==1){
return str.toString();
}
否则{
返回f(g(str))+str[0];
}
}
公共静态字符串h(int n,String str){
而(n!=1){
如果(n%2==0){
n=n/2;
}
否则{
n=3*n+1;
}
str=f(str);
}
返回str;
}
公共静态整数功率(整数x,长y){
如果(y==0){
返回1;
}
否则{
返回x*pow(x,y-1);
}
}
公共静态void main(字符串[]args){
系统打印(h(1,“水果”);
系统打印(h(2,“水果”);
系统打印(h(5,“水果”);
系统输出打印(h(功率(2,10000000000000L),“水果”);
系统打印(h(功率为2983105000007L),“水果”);
}
}

这里要明确的是,我不是程序员。而且我对Java和编程世界非常陌生。

您的朋友在他的示例中(在另一种编程语言中)没有使用字符串数组,而是使用普通字符串


当他使用括号
string[i+1]
访问字符串时,java中的translatet代码将是
string.charAt(i+1)
。因此只需将字符串数组更改为普通字符串即可。

您的朋友在他的示例中(在另一种编程语言中)不使用字符串数组,而是使用普通字符串


当他使用括号
string[i+1]
访问字符串时,java中的translatet代码将是
string.charAt(i+1)
。因此只需将字符串数组更改为普通字符串。

在f和g中,您将向sa传递一个参数aj字符串数组(string[])
字符串无法转换为字符串的aj数组,因此,如果删除这两个函数的参数类型中的[]方括号,它应该可以工作。

在f和g中,您将向sa传递一个参数aj字符串数组(字符串[])
字符串无法转换为字符串的aj数组,因此,如果删除这两个函数的参数类型中的[]方括号,它应该可以工作。

Yes
返回的字符串不能传递给函数
f
OP需要将所述字符串包装成字符串数组,或者更改函数定义。是返回的字符串不能传递给函数
f
OP需要将所述字符串包装成字符串数组,或者更改函数定义。这很有帮助。谢谢。我将所有字符串[]更改为字符串。将长度更改为长度()方法。但我在第三个和第四个输出中遇到了问题。我的朋友说我应该在输出中使用biginteger。我已经尝试过了,但出现了一个错误,说biginteger不能转换为int。你认为如何?这很有帮助。谢谢。我将所有字符串[]改为字符串。将长度改为长度()方法。但是我在第三个和第四个输出中遇到了问题。我的朋友说我应该在输出中使用biginteger。我已经尝试过了,但是出现了一个错误,说biginteger不能转换为int。你认为呢?