![](/img/trans.png)
[英]Which class to use for this static method, StringBuffer or StringBuilder?
[英]How to use split method with stringbuilder together in the same class?
StringBuilder隱藏元音:
String bienvenue_intro = " Welcome! Java First Semester: 455, java street: City (State): Country: 575757 ";
StringBuilder sb = new StringBuilder(bienvenue_intro);
String[] introduction = bienvenue_intro.split(":");
for (int i = 0; i < bienvenue_intro.length(); i++) {
char c = bienvenue_intro.charAt(i);
if ((c == 'A') || (c == 'a') ||
(c == 'E') || (c == 'e') ||
(c == 'I') || (c == 'i') ||
(c == 'O') || (c == 'o') ||
(c == 'U') || (c == 'u')) {
sb.setCharAt(i, '*');
}
}
System.out.println(bienvenue_intro);
System.out.println(sb.toString());
上面代碼的輸出是:
Welcome! Java First Semester: 455, java street: City (State): Country: 575757
W*lc*m*! J*v* F*rst S*m*st*r: 455, j*v* str**t: C*ty (St*t*): C**ntry: 575757
方法拆分以打破線條:
for (int i = 0; i < introduction.length; i++)
System.out.println(introduction[i]);
使用split + string builder所需的輸出將是:
W*lc*m*! J*v* F*rst S*m*st*r
455, j*v* str**t
C*ty (St*t*)
C**ntry
575757
但是它們在一起它不起作用! 甚至可以使用Split方法將StringBuilder組合在一起嗎?
不要先拆分String
,先拆分轉換。 StringBuilder
將為您執行就地字符替換,並使用toString()
獲取替換的String並對其執行拆分。
String bienvenue_intro = " Welcome! Java First Semester: 455, java street: City (State): Country: 575757 ";
StringBuilder sb = new StringBuilder(bienvenue_intro);
for (int i = 0; i < bienvenue_intro.length(); i++) {
char c = bienvenue_intro.charAt(i);
if ( (c == 'A') || (c == 'a')
|| (c == 'E') || (c == 'e')
|| (c == 'I') || (c == 'i')
|| (c == 'O') || (c == 'o')
|| (c == 'U') || (c == 'u')) {
sb.setCharAt(i, '*');
}
}
System.out.println(bienvenue_intro);
//System.out.println(sb.toString());
String[] introduction = sb.toString().split(":"); //<-- Do the split here after replacements.
for (String string : introduction) {
System.out.println(string);
}
輸出:
W*lc*m*! J*v* F*rst S*m*st*r
455, j*v* str**t
C*ty (St*t*)
C**ntry
575757
有一個更好,更簡單的方法:)
replaceAll()
和split()
。
public static void main(String[] args) {
String bienvenue_intro = " Welcome! Java First Semester: 455, java street: City (State): Country: 575757 ";
String[] arr = bienvenue_intro.replaceAll("(?i)[aeiou]+", "*").split(":");
for(String s : arr) {
System.out.println(s);
}
}
W*lc*m*! J*v* F*rst S*m*st*r
455, j*v* str*t
C*ty (St*t*)
C*ntry
575757
我想擴展@YoungHobbit給出的答案。 我不是專家,但這些是我的觀察:
我的看法:
String bienvenue_intro = " Welcome! Java First Semester: 455, java street: City (State): Country: 575757 ";
String mod_str = bienvenue_intro.replaceAll( "(?i)[aeiou]", "*" );
String[] introduction = mod_str.split(":");
for (String string : introduction) {
System.out.println(string);
}
我相信你的方法是錯誤的:已經有一個API可以在一個易於閱讀的代碼行中執行此操作:
System.out.println(bienvenue_intro.replaceAll("[aeiouAEIOU]", "*").replace(":", "\n"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.