Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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_String_Methods - Fatal编程技术网

Java字符串方法不返回字符串

Java字符串方法不返回字符串,java,string,methods,Java,String,Methods,我对编码非常陌生,刚刚接触过静态方法,所以我为这些愚蠢的错误提前道歉。在main下调用该方法时,该方法应该显示一个三角形,但我得到的控制台是空的,没有输出。但是,如果我将此写在main下: String triangle = getTriangle(3, 4); System.out.println(triangle); 然后,三角形将显示在控制台中,但对于此分配,必须仅使用 getTriangle(maxRows,maxCols) 公共类

我对编码非常陌生,刚刚接触过静态方法,所以我为这些愚蠢的错误提前道歉。在main下调用该方法时,该方法应该显示一个三角形,但我得到的控制台是空的,没有输出。但是,如果我将此写在main下:

    String triangle = getTriangle(3, 4);    
    System.out.println(triangle);               
然后,三角形将显示在控制台中,但对于此分配,必须仅使用
getTriangle(maxRows,maxCols)

公共类三角形{
公共静态字符串getTriangle(int-maxRows,int-maxCols){
字符串T=“”;
如果(maxRows<1 | | maxCols<1){
返回null;
}否则{

对于(int row=1;row使您的方法
void
,并在方法末尾打印
T

public static void getTriangle(int maxRows, int maxCols) {    
    if (maxRows < 1 || maxCols < 1) {
        return; 
    }

    String T = "";

    for (int row = 1; row <= maxRows; row++) {
        for (int col = 1; col <= row; col++) {
            T += "*";
        }
        T += "\n";
    }

    System.out.println(T);
}
publicstaticvoidgettriangle(int-maxRows,int-maxCols){
如果(maxRows<1 | | maxCols<1){
返回;
}
字符串T=“”;
对于(int row=1;row您可以添加行
系统输出打印ln(T);
之前
返回T;

这样做。

您可以在方法返回它之前打印它

public static String getTriangle(int maxRows, int maxCols) {
    String T = "";

    if (maxRows < 1 || maxCols < 1) {
        return null;

    } else {

        for (int row = 1; row <= maxRows; row++) {
            for (int col = 1; col <= row; col++) {
                T += "*";
            }
            T += "\n";
        }
    }
    System.out.println(T); // Print the triangle
    return T;
}
public静态字符串getTriangle(int-maxRows,int-maxCols){
字符串T=“”;
如果(maxRows<1 | | maxCols<1){
返回null;
}否则{

对于(int row=1;row,您仍然需要在main方法中打印getTriangle的结果。现在您只需忽略该结果

System.out.println(getTriangle(3,2));

首先,您应该通过适当缩进代码来提高代码的可读性。
像这样阅读不是容易多了吗

public class Triangle {

    public static String getTriangle(int maxRows, int maxCols) 
    {
        String T = "";

        if (maxRows < 1 || maxCols < 1) 
        {
            return null;

        } 
        else 
        {
            for (int row = 1; row <= maxRows; row++) 
            {
                for (int col = 1; col <= row; col++) 
                {
                    T += "*";
                }
                T += "\n";  
            }   
        }
        return T;
    }

    public static void main(String[] args) 
    {
        getTriangle(3,2);           
    }
}

您正在接收字符串,只是没有输出它

只是粘贴
System.out.println(T)
getTriangle
方法的最后,将其更改为return
void
,而不是
String
。另外,请注意正确的代码格式。这对您和其他人都有帮助。returning value!=打印/显示值。
getTriangle
应该返回一些内容(因为单词
get
)。
printTriangle
应该打印它。实际上,OP应该只覆盖
toString
public class Triangle {

    public static String getTriangle(int maxRows, int maxCols) 
    {
        String T = "";

        if (maxRows < 1 || maxCols < 1) 
        {
            return null;

        } 
        else 
        {
            for (int row = 1; row <= maxRows; row++) 
            {
                for (int col = 1; col <= row; col++) 
                {
                    T += "*";
                }
                T += "\n";  
            }   
        }
        return T;
    }

    public static void main(String[] args) 
    {
        getTriangle(3,2);           
    }
}
public static void main(String[] args) 
{
    System.out.println(getTriangle(3,2));
}