Как использовать java.String.format в Scala? - PullRequest
320 голосов
/ 12 сентября 2010

Я пытаюсь использовать .format метод строки.Но если я помещаю% 1,% 2 и т. Д. В строку, генерируется java.util.UnknownFormatConversionException, указывающий на запутанный фрагмент исходного кода Java:

private void checkText(String s) {

    int idx;

    // If there are any '%' in the given string, we got a bad format
    // specifier.
    if ((idx = s.indexOf('%')) != -1) {
        char c = (idx > s.length() - 2 ? '%' : s.charAt(idx + 1));
        throw new UnknownFormatConversionException(String.valueOf(c));
    }
}

Из этого я понимаю, что % charзапрещен.Если так, то что я должен использовать для аргументов-заполнителей?

Я использую Scala 2.8.

Ответы [ 11 ]

0 голосов
/ 21 ноября 2016

В scala для строковой интерполяции у нас есть $ , который спасает день и делает нашу жизнь намного проще:

Например: Вы хотите определить функцию, которая принимает имя и возраст ввода и говорит «Hello» вместе с именем и говорит, что его возраст. Это можно записать так:

def funcStringInterpolationDemo(name:String,age:Int)=s"Hey ! my name is $name and my age is $age"

Следовательно, когда вы вызываете эту функцию: вот так:

funcStringInterpolationDemo("Shivansh",22)

Его вывод будет:

Hey ! my name is Shivansh and my age is 22

Вы можете написать код, чтобы изменить его в той же строке, например, если вы хотите добавить 10 лет к возрасту!

тогда функция может быть:

def funcStringInterpolationDemo(name:String,age:Int)=s"Hey ! my name is $name and my age is ${age+10}"

А теперь вывод будет:

Hey ! my name is Shivansh and my age is 32
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...