ДЖАВА:Проблема с помещением значений в метод toString.

StackOverflow https://stackoverflow.com//questions/20038112

  •  21-12-2019
  •  | 
  •  

Вопрос

Мой методlocalestLargest(), как показано ниже, представляет собой метод поиска координат моего самого большого значения в моем массиве.У меня возникли проблемы с помещением возвращаемых значений в метод toString.Я понятия не имею, как отформатировать его в метод toString.

public Location locateLargest(int[][] x){ 
    int maxValue = getMax(x);
    for (int i = 0; i < x.length; i++){
        for (int j = 0; j < x.length; j++)
            if (x[i][j] == maxValue)
                return new Location(i,j);
    }
}

Моя попытка toString:

public String toString(){
    return "[" + i + "][" + j + "]";
}

Код класса местоположения:

class Location {
    private int row;
    private int column;

    Location(){}//end constructor

    Location(int row, int column){
        this.row = row;
        this.column = column;
    }//end arg constructor

    public int getRow(){
        return this.row;
    }

    public int getColumn(){
        return this.column;
    }

Вот мой полный код моей программы:

import java.util.Scanner;

public class LocationTest {

    public static void main(String[] args) {
        Scanner numberInput = new Scanner(System.in);
        System.out.println("Enter the number of rows and columns of the array: ");
        int row = numberInput.nextInt();
        int column = numberInput.nextInt();
        Location l1 = new Location(row, column);
        Location l2 = new Location();
        row = l1.getRow();
        column = l1.getColumn();
        int[][] array = new int[l1.getRow()][l1.getColumn()];
        System.out.println("Please enter the array elements: ");
        for (int r = 0; r < array.length; r++){
            for (int c = 0; c < array[r].length; c++){
                array[r][c] = numberInput.nextInt();
            }//end nested loop
        }//end for loop
        System.out.println(getMax(array));
        System.out.println(l1.locateLargest(array).toString());
    }

    public static int getMax(int[][] x){
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < x.length; i++){
            for (int j = 0; j < x[i].length; j++){
                if (x[i][j] > max)              
                    max = x[i][j];
            }
        }
        return max;
    }

    public Location locateLargest(int[][] x){ 
        int maxValue = getMax(x);
        for (int i = 0; i < x.length; i++){
            for (int j = 0; j < x.length; j++)
                if (x[i][j] == maxValue)
                    return new Location(i,j);
        }
        return null;
    }
}

class Location {
    private int row;
    private int column;

    Location(){}//end constructor
    Location(int row, int column){
        this.row = row;
        this.column = column;
    }//end arg constructor

    public int getRow(){
        return this.row;
    }

    public int getColumn(){
        return this.column;
    }

    public String toString(){
        return "[" + row + "][" + column + "]";
    }
}
Это было полезно?

Решение

Если местонахождение является классом, вы определяете себя, вы должны также реализовать функцию TOSTRING (), а также

class Location{
    int locationX,locationY;    

    public Location(int x,int y){
        locationX = x;
        locationY = y;
    }

    public String toString(){
        return locationX+","+locationY;
    }
}
.

Другие советы

метод ToString имеет заголовок

public String toString()
.

Так что все, что вам нужно сделать, это сделать метод с этим заголовком, который возвращает строку.

Ваш вопрос довольно расплывчатый, как кто-то, указанный выше, и местоположение не является стандартным классом библиотеки, поэтому я не могу дать вам ничего конкретного, но что-то вроде

public String toString() {
    return "(" + x + ", " + y + ")";
}
.

может быть близок к тому, что вы идете, если вы хотите, чтобы TOSTRING представлять точку.

Что вам нужно для преобразования в строку? В любом случае, что бы вы ни делали, добавьте это к концу:

.toString();
.

Вы можете сделать строкую переменную и вернуть ее:

StringVariable = <object>.toString();
.

или просто распечатать его или сделать что-нибудь еще

System.out.println(<object>.toString());
.

Надеюсь, что помогло.Если это не сказала мне об этом в комментариях!

Самый чистый способ поставить в свой класс:

public String toString(){
        return String.format("[%i][%i]",row,column);
    }
.

Я не уверен, что это помогает, но, возможно, могут, возможно, коды ниже помогают

  return new Location(i,j);
 String toStringI = Integer.toString(i); 
    String ToStringj = integer.toString(j);
.

или с помощью String.valueof (myinteger);

Ваш класс "Именован: местоположение" устанавливается в целое число, если вы пытаетесь показать его в окне или вывести, что он попробует это?

System.out.println("",i,"",j);
.

что угодно; P

Вы должны использовать row column

public String toString(){
    return "[" + row + "][" + column + "]";
}

Вы не можете использовать i j потому что нет i j существует в Location.

public String toString(){
    return "[" + i + "][" + j + "]";
}

Пока это (ниже) ваш конструктор, а не тот, что у вас был раньше xLocation и yLocation, с тобой должно быть все в порядке.

Location(int row, int column){
    this.row = row;
    this.column = column;
}//end arg constructor
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top