Jaka jest główna różnica między StringBufferi StringBuilder? Czy przy podejmowaniu decyzji dotyczącej któregokolwiek z nich występują problemy z wydajnością?
Biorąc pod uwagę 2 toString()poniższe implementacje, które są preferowane: public String toString(){ return "{a:"+ a + ", b:" + b + ", c: " + c +"}"; } lub public String toString(){ StringBuilder sb = new StringBuilder(100); return sb.append("{a:").append(a) .append(", b:").append(b) .append(", c:").append(c) .append("}") .toString(); } ? Co ważniejsze, biorąc …
Gdy musisz przejrzeć kolekcję i utworzyć ciąg danych oddzielonych separatorem, zawsze kończy się to dodatkowym separatorem na końcu, np. for (String serverId : serverIds) { sb.append(serverId); sb.append(","); } Daje coś w rodzaju: serverId_1, serverId_2, serverId_3, Chciałbym usunąć ostatni znak w StringBuilder (bez konwersji, ponieważ nadal potrzebuję go po tej pętli).
Mam StringBuilderprzedmiot StringBuilder result = new StringBuilder(); result.append(someChar); Teraz chcę dodać znak nowej linii do StringBuilder. Jak mogę to zrobić? result.append("/n"); Nie działa. Tak więc myślałem o napisaniu nowej linii za pomocą Unicode. Czy to pomoże? Jeśli tak, jak mogę go dodać?
Załóżmy, że mam program do tworzenia ciągów w C #, który robi to: StringBuilder sb = new StringBuilder(); string cat = "cat"; sb.Append("the ").Append(cat).(" in the hat"); string s = sb.ToString(); czy byłoby to tak wydajne czy bardziej wydajne, jak posiadanie: string cat = "cat"; string s = String.Format("The {0} …
Wiem, że możemy dołączyć ciągi znaków za pomocą StringBuilder. Czy istnieje sposób, w jaki możemy dołączyć ciągi znaków z wyprzedzeniem (tj. Dodać ciągi przed ciągiem), używając StringBuilder, abyśmy mogli zachować korzyści wydajnościowe, które StringBuilderoferuje?
Mam pytanie związane z wydajnością dotyczące używania StringBuilder. W bardzo długiej pętli manipuluję a StringBuilderi przekazuję go do innej metody, takiej jak ta: for (loop condition) { StringBuilder sb = new StringBuilder(); sb.append("some string"); . . . sb.append(anotherString); . . . passToMethod(sb.toString()); } Czy tworzenie instancji StringBuilderw każdym cyklu pętli …
Mogłem to zrobić tylko ze Stringiem, na przykład: String str=""; for(int i=0;i<100;i++){ str=i+str; } Czy istnieje sposób na osiągnięcie tego za pomocą StringBuilder? Dzięki.
Mam następujące data.AppendFormat("{0},",dataToAppend); Problem polega na tym, że używam go w pętli i pojawi się przecinek testowy. Jaki jest najlepszy sposób na usunięcie końcowego przecinka? Czy muszę zmienić dane na ciąg będący podłańcuchem?
Właśnie znalazłem w moim projekcie taką kompilację kwerend sql: return (new StringBuilder("select id1, " + " id2 " + " from " + " table")).toString(); Czy to StringBuilderosiąga swój cel, tj. Zmniejsza zużycie pamięci? Wątpię, ponieważ w konstruktorze zastosowano „+” (operator konkatowania ciągów). Czy zajmie to taką samą ilość pamięci, …
Próbuję zrozumieć, jakie są najlepsze praktyki i dlaczego należy łączyć literały ciągów i zmienne dla różnych przypadków. Na przykład, jeśli mam taki kod StringBuilder sb = new StringBuilder("AAAAAAAAAAAAA") .append(B_String).append("CCCCCCCCCCC").append(D_String) .append("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE") .append("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); Czy to jest sposób na zrobienie tego? W tym poście zauważyłem, że +operator w Strings tworzy nową instancję StringBuilder, …
Rozumiem zalety StringBuilder. Ale jeśli chcę połączyć 2 ciągi, to zakładam, że lepiej (szybciej) to zrobić bez StringBuildera. Czy to jest poprawne? W którym momencie (liczba ciągów) lepiej jest używać StringBuilder?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.