Хотя Подрывная деятельность пробует к , автоматически обнаруживают , является ли файл двоичным или нет, можно переопределить тип пантомимы с помощью svn propset. Например, svn propset svn:mime-type application/octet-stream example.txt
. Это заставит Ваш файл действовать как набор байтов, а не текстового файла. См. также, svn руководство по Мобильность Файла .
Google недавно сделал доступными библиотеки guava . В нем может быть то, что вы ищете:
CharMatcher.inRange('\0', ' ').trimFrom(str)
эквивалентно String.trim (), но вы можете настроить, что обрезать, см. JavaDoc.
Например, он имеет собственное определение WHITESPACE , которое отличается от JDK и определено в соответствии с последним стандартом Unicode, поэтому то, что вам нужно, можно записать как:
CharMatcher.WHITESPACE.trimFrom(str)
Клянусь, я увидел это только после того, как опубликовал вопрос: Google только что выпустил Guava , библиотеку основных утилит Java.
Я еще не пробовал это , но насколько я могу судить, он полностью совместим с Unicode:
String s = " \t testing \u00a0"
s = CharMatcher.WHITESPACE.trimFrom(s);
Я всегда считал, что trim
хорошо работает почти для каждого сценария.
Однако, если вы действительно хотите включить больше символов, вы можете отредактировать метод strip
из commons-lang
, чтобы включить в него не только тест для Character.isWhitespace
, но также и для Character.isSpaceChar
, который кажется отсутствующим. А именно, следующие строки в stripStart
и stripEnd
, соответственно:
while ((start! = StrLen) && Character.isWhitespace (str.charAt (start)))
while ((end! = 0) && Character.isWhitespace (str.charAt (end - 1)))
Действительно сложно определить, что представляют собой пробелы. Иногда я использую неразрывные пробелы, чтобы убедиться, что они не сорваны. Так что будет сложно найти библиотеку, которая бы делала именно то, что вы хотите.
Я использую свой собственный trim (), если хочу обрезать все пробелы. Вот функция, которую я использую для проверки пробелов,
public static boolean isWhitespace (int ch)
{
if (ch == ' ' || (ch >= 0x9 && ch <= 0xD))
return true;
if (ch < 0x85) // short-circuit optimization.
return false;
if (ch == 0x85 || ch == 0xA0 || ch == 0x1680 || ch == 0x180E)
return true;
if (ch < 0x2000 || ch > 0x3000)
return false;
return ch <= 0x200A || ch == 0x2028 || ch == 0x2029
|| ch == 0x202F || ch == 0x205F || ch == 0x3000;
}