Оригинальный вопрос хочет, чтобы XYZ / ABC / (* файлы) стали ABC / ABC / (* файлами). После выполнения принятого ответа для моего собственного кода я заметил, что он фактически изменяет XYZ / ABC / (* файлы) в ABC / (* файлы). Страница man filter-branch даже говорит:
Результат будет содержать этот каталог (и только это) в качестве его корня проекта . "
blockquote >Другими словами, он продвигает папку верхнего уровня «вверх» на один уровень. Это важное различие, потому что, например, в моей истории я переименовал папку верхнего уровня. Продвигая папки «вверх» на один уровень , git теряет непрерывность в commit, где я сделал переименование.
[/g1]
Тогда мой ответ на вопрос состоит в том, чтобы сделать 2 копии репозитория и вручную удалите папку (ы), которую вы хотите сохранить в каждой странице. man-страница поддерживает меня следующим образом:
[...] избегать использования [этой команды], если достаточно простого синтаксиса для исправления вашей проблемы
blockquote>
Постройте эту строку, используя StringJoiner
:
int[] number = {10, 20, 30, 40, 50};
StringJoiner joiner = new StringJoiner(",");
for (int numb : number)
joiner.add(String.valueOf(numb));
String s = joiner.toString();
System.out.println(s); // prints: 10,20,30,40,50
Да. Самым простым способом будет традиционный цикл for
;
int[] number = {10, 20, 30, 40, 50};
for (int i = 0; i < number.length; i++) {
if (i != 0) {
System.out.print(",");
}
System.out.print(number[i]);
}
Вы также можете использовать StringJoiner
или конкатенацию потока. Но это было бы сложнее, чем просто использовать обычный цикл for
, как описано выше.
Есть несколько способов справиться с этим.
Вы можете использовать «руководство» для цикла:
for (int i = 0; i < number; ++i) {...
... и затем рассматривать случай, когда i + 1 == number.length
, как особый случай.
Вы также можете использовать IntStream
, отобразить это на Stream
, используя mapToObj
, а затем собрать этот поток, используя Collectors.joining(",")
:
Но, вероятно, самый простой способ - использовать Arrays.toString(int[])
. Это создаст строку с пробелом после каждой запятой, но затем вы можете сделать replaceAll(" ", "")
, чтобы удалить это.