Как связать символы в Java?

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

Вот пример кода для этого.

let documentsDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask, true).first as! String
 // self.fileName is whatever the filename that you need to append to base directory here.

let path = documentsDirectory.stringByAppendingPathComponent(self.fileName)

let success = data.writeToFile(path, atomically: true)
if !success { // handle error }
30
задан sblundy 30 November 2008 в 00:32
поделиться

7 ответов

Вы хотите сделать строку из них?

String s = new StringBuilder().append(char1).append(char2).append(char3).toString();

Примечание, что

String b = "b";
String s = "a" + b + "c";

На самом деле компиляции к

String s = new StringBuilder("a").append(b).append("c").toString();

Редактирование : как litb указанный, можно также сделать это:

"" + char1 + char2 + char3;

, Который компилирует в следующее:

new StringBuilder().append("").append(c).append(c1).append(c2).toString();

Редактирование (2) : Исправленная строка добавляет сравнение с тех пор, как cletus указывает, серия строк обрабатывается компилятором.

цель вышеупомянутого состоит в том, чтобы проиллюстрировать то, что компилятор делает, чтобы не сказать Вам, что необходимо сделать.

51
ответ дан 27 November 2019 в 23:10
поделиться

Я не собирался отвечать на этот вопрос, но существует два ответа здесь (которые становятся проголосовавшими!), которые являются просто неправильными. Рассмотрите эти выражения:

String a = "a" + "b" + "c";
String b = System.getProperty("blah") + "b";

первое оценено в [1 117] время компиляции . Второе оценено в [1 118] время выполнения .

Так никогда не заменяют постоянные конкатенации (никакого типа) с StringBuilder, StringBuffer и т.п. Только используйте их, где переменные включены и обычно только когда Вы добавляете много операндов, или Вы добавляете в цикле.

, Если символы являются постоянными, это прекрасно:

String s = "" + 'a' + 'b' + 'c';

, Если однако они не, рассмотрите это:

String concat(char... chars) {
  if (chars.length == 0) {
    return "";
  }
  StringBuilder s = new StringBuilder(chars.length);
  for (char c : chars) {
    s.append(c);
  }
  return s.toString();
}

как соответствующее решение.

Однако некоторые могли бы испытать желание оптимизировать:

String s = "Name: '" + name + "'"; // String name;

в это:

String s = new StringBuilder().append("Name: ").append(name).append("'").toString();

, В то время как это полно благих намерений, нижняя строка , не ДЕЛАЮТ .

, Почему? Как другой ответ, на который правильно указывают: компилятор делает это для Вас. Таким образом в выполнении его самостоятельно, Вы не позволяете компилятору оптимизировать код или не зависите, если это - хорошая идея, код более трудно прочитать и его излишне сложный.

Для оптимизации низкого уровня компилятор лучше в оптимизации кода, чем Вы.

Позволяют компилятору сделать свое задание. В этом случае худший вариант развития событий - то, что компилятор неявно изменяет Ваш код на точно, что Вы написали. Конкатенация 2-3 Строк могла бы быть более эффективной, чем построение StringBuilder, таким образом, могло бы быть лучше оставить его, как. Компилятор знает то, что является лучшим в этом отношении.

23
ответ дан 27 November 2019 в 23:10
поделиться

Если Вы имеете набор символов и хотите к concat их в строку, почему бы не

System.out.println("" + char1 + char2 + char3); 

?

8
ответ дан 27 November 2019 в 23:10
поделиться

Можно использовать конструктор String .

System.out.println(new String(new char[]{a,b,c}));
6
ответ дан 27 November 2019 в 23:10
поделиться

Необходимо сказать компилятору, что Вы хотите сделать Конкатенацию строк путем запуска последовательности со строки, даже пустой. Как так:

System.out.println("" + char1 + char2 + char3...);
4
ответ дан 27 November 2019 в 23:10
поделиться

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

StringBuilder sb = new StringBuilder('a').append('b').append('c');
System.out.println(sb.toString);
1
ответ дан 27 November 2019 в 23:10
поделиться

инициалы открытого класса {

public static void main (String [] args) {

    char initialA = 'M';
    char initialB = 'P';
    char initialC = 'T';

    System.out.println("" + initialA + initialB + initialC );


}   

}

1
ответ дан 27 November 2019 в 23:10
поделиться
Другие вопросы по тегам:

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