Angular HttpClient, Param с именем 'query' не удалось установить

Функция:

public float simpleSimilarity(String u, String v) {
    String[] a = u.split(" ");
    String[] b = v.split(" ");

    long correct = 0;
    int minLen = Math.min(a.length, b.length);

    for (int i = 0; i < minLen; i++) {
        String aa = a[i];
        String bb = b[i];
        int minWordLength = Math.min(aa.length(), bb.length());

        for (int j = 0; j < minWordLength; j++) {
            if (aa.charAt(j) == bb.charAt(j)) {
                correct++;
            }
        }
    }

    return (float) (((double) correct) / Math.max(u.length(), v.length()));
}

Тест:

String a = "This is the first string.";

String b = "this is not 1st string!";

// for exact string comparison, use .equals

boolean exact = a.equals(b);

// For similarity check, there are libraries for this
// Here I'll try a simple example I wrote

float similarity = simple_similarity(a,b);
2
задан TBA 25 February 2019 в 15:13
поделиться

1 ответ

Если вам интересно, почему не передаются никакие параметры, есть ключевая подсказка в ссылках HttpParams docs

Этот класс неизменен - ​​все операции мутации возвращают новый экземпляр.

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

    const params = new HttpParams()
        .set('query', 'value here')
        .set('another_param', 'value_here')
        .set('sortby', sortby.toString());

return this.httpClient.get('my url', { params })

Если вы хотите добавить HttpParams условно, используйте вариант этого вместо этого, например:

let params = new HttpParams();
if ( limit ) {
  params = params.set('limit', String(limit));
}
params = params.set('search', keyword);
0
ответ дан nircraft 25 February 2019 в 15:13
поделиться
Другие вопросы по тегам:

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