Java String;Умеет выделять размер строки с учетом размера? - PullRequest
0 голосов
/ 11 августа 2010

Попытка поиска в Java String API без ответа.

Я пытаюсь создать строки Java с указанным размером. Я заметил, что строки Java не заканчиваются нулевым символом (\ 0). По сути, я хотел бы иметь возможность создавать строки, такие как:

String myString = new String("Charles", 32);

где myString будет содержать "Charles <-- 24 spaces --> \0"

Нет такого метода, который мог бы достичь того, что я имею выше. Должен ли я просто положиться на создание своей собственной функции для этого?

Спасибо

Ответы [ 5 ]

4 голосов
/ 11 августа 2010
String myString = String.format("%1$-" + 32 + "s", "Charles");
2 голосов
/ 11 августа 2010

Строки в Java неизменны. Если вам нужны эти дополнительные пробелы в конце, вам просто нужно создать строку, содержащую эти пробелы.

0 голосов
/ 11 августа 2010

Я бы предложил вам один из вариантов форматирования, предоставляемый Java, для этого.

Например, реализуйте собственную реализацию java.text.Format .

Другая возможностьбудет использовать StringBuffer / StringBuilder с указанной емкостью и инициализировать его пробелами и \ 0.Затем вы можете поиграть с позициями символов при написании / изменении текста.

0 голосов
/ 11 августа 2010

Если вы хотите работать со строками фиксированного размера непостоянным образом, вы также можете написать свою собственную оболочку, которая инкапсулирует прецизионный символ [], например,

public class MyString()
 private char[] values;

 public MyString(int size)
 {
   values=new char[size];
 }

 ... methods to set, get

 public String toString() { return new String(values);}
}
0 голосов
/ 11 августа 2010

Да, вероятно, для этого нет встроенной функции.Вы можете дополнить строку до необходимой длины, используя String.format (), а затем добавить \ 0 в конце - это должно сделать то, что вы хотите довольно легко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...