2014-02-17 3 views
-4

Я хочу, чтобы заменить пространство с "-", что путьКак заменить пространство дефисом?

Пусть мой код

StringBuffer tokenstr=new StringBuffer(); 
tokenstr.append("technician education systems of the Cabinet has approved the following"); 

Я хочу, чтобы результат

"technician-education-systems-of-the-Cabinet-has-approved-the-following" 

Thanks

+0

вы можете использовать 'string.replace All() ' – user2573153

+0

@ user2573153 Я использую Stringbuffer, а не строку. – Adi

+5

вы что-то пробовали? –

ответ

0

Если у вас есть StringBuffer объект, то вам необходимо повторить его и заменить символ:

for (int index = 0; index < tokenstr.length(); index++) { 
      if (tokenstr.charAt(index) == ' ') { 
       tokenstr.setCharAt(index, '-'); 
      } 
     } 

или преобразовать его в строку, то заменить, как показано ниже:

String value = tokenstr.toString().replaceAll(" ", "-"); 
+0

с использованием регулярных выражений здесь было бы гораздо более читаемым – radai

+0

@radai да это будет .. – Kick

4

как это,

StringBuffer tokenstr = new StringBuffer(); 
tokenstr.append("technician education systems of the Cabinet has approved the following"); 
System.out.println(tokenstr.toString().replaceAll(" ", "-")); 

и как это также

System.out.println(tokenstr.toString().replaceAll("\\s+", "-")); 
0

ли, как это

StringBuffer tokenstr=new StringBuffer(); 
tokenstr.append("technician education systems of the Cabinet has approved the following".replace(" ", "-")); 
System.out.print(tokenstr); 
0

Вы можете попробовать это:

//First store your value in string object and replace space with "-" before appending it to StringBuffer. 
String str = "technician education systems of the Cabinet has approved the following"; 
str = str.replaceAll(" ", "-"); 
StringBuffer tokenstr=new StringBuffer(); 
tokenstr.append(str); 
System.out.println(tokenstr); 
0

вам нужно написать специальный replaceAll метод. Где вам нужно найти индекс строки src и заменить эту строковую строку на строку назначения.

Пожалуйста, найти фрагмент кода на Jon Skeet

0

Если вы не хотите, чтобы вернуться назад и вперед между StringBuffer и Струнные классов, вы можете сделать это:

StringBuffer tokenstr = new StringBuffer(); 
tokenstr.append("technician education systems of the Cabinet has approved the following"); 

int idx=0; 
while(idx = tokenstr.indexOf(" ", idx) >= 0) { 
    tokenstr.replace(idx,idx+1,"-"); 
} 
0

/Вы можете использовать ниже метод перевала ваш параметр строки и получить результат в виде строк пространства заменены дефисом/

private static String replaceSpaceWithHypn(String str) { 
    if (str != null && str.trim().length() > 0) { 
     str = str.toLowerCase(); 
     String patternStr = "\\s+"; 
     String replaceStr = "-"; 
     Pattern pattern = Pattern.compile(patternStr); 
     Matcher matcher = pattern.matcher(str); 
     str = matcher.replaceAll(replaceStr); 
     patternStr = "\\s"; 
     replaceStr = "-"; 
     pattern = Pattern.compile(patternStr); 
     matcher = pattern.matcher(str); 
     str = matcher.replaceAll(replaceStr); 
    } 
    return str; 
} 
Смежные вопросы