Как указано в комментарии , вы можете разбить строку после знака =
, равного , за которым не следует =
, равный знак, используя комбинацию (?<=X)
положительный взгляд нулевой ширины и (?!X)
отрицательный взгляд нулевой ширины :
String[] arr = input.split("(?<==)(?!=)");
Тест
String[] inputs = {
"TG9y",
"TG9yZW0=",
"TG9yZQ==",
"TG9yZW0=TG9y",
"TG9yZW0=TG9yZW0=",
"TG9yZW0=TG9yZQ==",
"TG9yZQ==TG9y",
"TG9yZQ==TG9yZW0=",
"TG9yZQ==TG9yZQ==",
"TG9yZW0=TG9yZW0=TG9y",
"TG9yZQ==TG9yZW0=TG9y",
"TG9yTG9yZQ==TG9yZW0=" };
Decoder decoder = Base64.getDecoder();
for (String input : inputs) {
String[] arr = input.split("(?<==)(?!=)");
for (int i = 0; i < arr.length; i++)
arr[i] = new String(decoder.decode(arr[i]), StandardCharsets.US_ASCII);
System.out.println(Arrays.toString(arr));
}
Выход
[Lor]
[Lorem]
[Lore]
[Lorem, Lor]
[Lorem, Lorem]
[Lorem, Lore]
[Lore, Lor]
[Lore, Lorem]
[Lore, Lore]
[Lorem, Lorem, Lor]
[Lore, Lorem, Lor]
[LorLore, Lorem]