Я хочу разбить строку после каждого двух символов.Разделить строку после каждого двух символов
Для примера:
String aString= "abcdef"
Я хочу, чтобы после раскола "ab cd ef"
Как я могу это сделать?
Спасибо :)
Я хочу разбить строку после каждого двух символов.Разделить строку после каждого двух символов
Для примера:
String aString= "abcdef"
Я хочу, чтобы после раскола "ab cd ef"
Как я могу это сделать?
Спасибо :)
Это отрицательный looakahead на основе регулярных выражений должны работать для вас:
String repl = "abcdef".replaceAll("..(?!$)", "$0 ");
PS: Это позволит избежать добавления пробела после последнего матча, так что вы получите этот результат:
"ab cd ef"
вместо:
"ab cd ef "
Если вы хотите, чтобы вывод, что та же строка с дополнительными пробелами, вы можете просто использовать:
String newString = aString.replaceAll("(..)", "$1 ")
вы можете сделать это легко, как здесь:
String k = "sdfjsdf";
String s = "";
for (int i=0;i<k.length();i++){
s+=k.charAt(i);
if (i%2 != 0){
s+=" ";
}
}
String s = "teststr";
StringBuilder tmp = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
tmp.append(s.charAt(i));
if (i % 2 == 1) tmp.append(" ");
}
System.out.println(tmp.toString());
Использование регулярных выражений:
String str= "abcdef";
String[] array=str.split("(?<=\\G.{2})");
System.out.println(java.util.Arrays.toString(array));
Выход:
[ab, cd, ef]
Это Это! Но я предлагаю 'System.out.println (java.util.Arrays.toString (array)); 'вместо' for'. Кроме того, введите результат в ответ, чтобы люди увидели его эффекты. – acdcjunior
@acdcjunior: Спасибо за предложение. –
Попробуйте это:
StringBuilder sb= new StringBuilder();
for (int i=0; i<s.length()-2;i+=2){
sb.append(s.substring(i, i+2));
if (i!=s.length()-3){
sb.append(" ");
}
}
public static void main(String[] args) {
String st = "abcdefg";
ArrayList<String> array = new ArrayList<String>();
int i = 0;
while(i<st.length())
{
int j=i+2;
if(j>st.length())
j=st.length();
array.add(st.substring(i,j));
i=j;
}
System.out.println(array);
}
String aString= "abcdef";
int partitionSize=2;
for (int i=0; i<aString.length(); i+=partitionSize)
{
System.out.println(aString.substring(i, Math.min(aString.length(), i + partitionSize)));
}
Этот ответ принес бы небольшой комментарий о том, что происходит, и почему вы сделали это таким образом. –
попробовать этот
String[] a = "abcdef".split("(?<=\\G..)");
System.out.println(Arrays.asList(a));
выход
[ab, cd, ef]
https://i.gyazo.com/f7d4f4c542139aee36e0aab03e145fa5.png Что не так? –
Попробуйте это тоже
String aString= "abcdef";
String[] arr=aString.split("(?<=\\G.{2})");
Ну, что вы пробовали, и что произошло? Вы посмотрели методы, доступные в 'String', чтобы найти метод, который позволяет извлекать часть строки на основе индексов? –
Подстрока может помочь вам ^^ – Deckard27
Посмотрите на [Разделить строку на несколько строк символов] (http://stackoverflow.com/questions/4788596/split-string-into-several-two-character-strings) – jpw