Как подсчитать количество символов на входе в Java? [Дубликат]

Используйте функцию callback() внутри успеха foo(). Попробуйте таким образом. Это просто и легко понять. & nbsp;

var lat = "";
var lon = "";
function callback(data) {
    lat = data.lat;
    lon = data.lon;
}
function getLoc() {
    var url = "http://ip-api.com/json"
    $.getJSON(url, function(data) {
        callback(data);
    });
}

getLoc();
9
задан John Tate 28 October 2012 в 20:41
поделиться

7 ответов

Запишите его так:

s.length() == 0 // it's a method, not an attribute
6
ответ дан Óscar López 5 September 2018 в 08:34
поделиться

Некоторые общие предложения «хорошего кодирования»:

  • Названия классов должны представлять «вещь», обычно имя класса является существительным (например, «StringTool»)
  • Методы должен представлять собой действие, обычно методname является глаголом (например, «reverse»)
  • Имена параметров и переменных должны иметь смысл и описывать то, что они представляют.
  • Вы не должны повторно назначать потому что это может ввести в заблуждение.
  • Метод должен обладать точно одной ответственностью (поэтому не реверсировать И печатать строку). Это способствует ясности и повторному использованию.

Я применил эти предложения к вашему готовому коду, см. Ниже:

public class StringTool {

    public static String reverse(String source) {

        // stop condition of the recursion
        if (source.isEmpty()) {
            return "";
        }

        int lastPosition = source.length() - 1;
        String lastCharacter = source.charAt(lastPosition);
        String restOfSource = source.substring(0, lastPosition);

        // place the last character at the beginning and reverse the rest 
        // of the source recursively
        return lastCharacter + reverse(restOfSource);
    }

    // test method
    public static void main(String args[]) {
        System.out.println(reverse("A STRING"));
    }

} 
2
ответ дан Adriaan Koster 5 September 2018 в 08:34
поделиться

length является методом , а не атрибутом. Вам придется использовать его таким образом:

s.length(); // note the use of parens

Кроме того, после исправления вы получите ошибку компиляции из-за следующего условия:

if (s.length = 0) { 

Это должно быть

if (s.length == 0) { 

И, наконец, в вашем методе main переменная b должна быть создана, используя

Back b = new Back();
0
ответ дан Alexis Pigeon 5 September 2018 в 08:34
поделиться

Вы забыли круглые скобки:

s.length()
0
ответ дан duffymo 5 September 2018 в 08:34
поделиться

Это лучше отражать то, что вы пытаетесь выполнить:

class Back {
    void Backwards(String s) {
            if (s.length() == 0) { 
                    System.out.println();
                    return;
            }
            System.out.print(s.charAt(s.length()));
            s = s.substring(0, s.length()-1);
            Backwards(s);
    }
}

public class RTest {
    public static void main(String args[]) {
            Back b = new Back();
            b.Backwards("RAPE APE");
    }
}
  • length () - это функция
  • . Для сравнения используется ==
  • Вы должны создать экземпляр b, чтобы использовать его
1
ответ дан Jonatan 5 September 2018 в 08:34
поделиться

- с String нам предоставляется функция с именем length(), а не поле length.

- Если вы использовали Array, это было бы length как Массив имеет одну и только одну переменную Instance с именем length.

Например:

s.length() == 0;
0
ответ дан Kumar Vivek Mitra 5 September 2018 в 08:34
поделиться

В вашей инструкции if вы назначаете 0 в s.length, а не проверяете. сделайте это следующим образом:

if(s.length()==0)
//rest of your code

еще одна ошибка - s.charAt(s.length()). Индекс i-го символа в строке равен (i-1), аналогично индексам массива. Таким образом, последний символ строки имеет индекс (s.length()-1). Поэтому замените эту строку кода на s.charAt(s.length()-1).

1
ответ дан Victor Mukherjee 5 September 2018 в 08:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: