JavaRush /Blog Java /Random-PL /Odniesienie do Javy. Ciągi statyczne
articles
Poziom 15

Odniesienie do Javy. Ciągi statyczne

Opublikowano w grupie Random-PL
Stringi w Javie są opisywane przez klasę String i są statyczne, tj. W istniejącej linii nie można zmieniać znaków ani ich liczby. Oprócz standardowego tworzenia przez operator new, ciągi znaków można tworzyć bezpośrednio z literału ciągu. Jednocześnie, w celach optymalizacji, utworzone w ten sposób obiekty są dodatkowo przechowywane w wydzielonym obszarze – puli ciągów. String s1 = "d" // строка будет сохранена в пуле // строка не будет сохранена в пуле // будет уничтожена сборщиком мусора String s2 = new String("a"); Jedną z zalet podziału ciągów na statyczne i dynamiczne jest to, że zwiększa to bezpieczeństwo tam, gdzie ciągi znaków są używane jako argumenty (na przykład przy otwieraniu baz danych, połączeniach internetowych, mechanizmach ładowania klas).

operacja +

Operacja + jest dostępna dla ciągów, umożliwiając połączenie kilku ciągów w jeden. Jeśli jeden z operandów nie jest ciągiem, jest automatycznie konwertowany na ciąg. W przypadku obiektów wykorzystuje się w tym celu metodę toString. Każda operacja wewnętrznie używa dynamicznego obiektu StringBuilder lub StringBuffer. Dlatego też, aby złożyć ciąg znaków z kilku, nadal optymalnie jest użyć jednego StringBuilder/StringBuffer na raz.

wybór podciągu

Jest uwaga na temat metody substring - zwrócony ciąg używa tej samej tablicy bajtów, co oryginalny. Na przykład pobrałeś linię A z pliku o wielkości 1 MB. Znaleźli tam coś i podzielili to na oddzielną linię B o długości 3 znaków. Linia B w rzeczywistości również zajmuje tyle samo 1MB. String s ="very .... long string from file"; // совместно использует ту же память что и s String sub1 = s.substring(2,4); // этот obiekt использует отдельный массив на 4 символа String sub2 = new String(s.substring(2,4));

podstawowe metody

  • CompareTo (String anotherString) - leksygraficzne porównanie ciągów znaków;
  • CompareToIgnoreCase (String str) - leksygraficzne porównanie ciągów znaków bez uwzględniania wielkości liter;
  • regionMatches (boolean generateCase, int toffset, String other, int ooffset, int len) - sprawdza tożsamość regionów stringów, można określić wielkość liter;
  • regionMatches (int toffset, String other, int ooffset, int len) - test na tożsamość regionów stringów;
  • concat (String str) - zwraca połączenie dwóch ciągów znaków;
  • zawiera (CharSequence s) - sprawdza, czy podany ciąg znaków znajduje się w ciągu znaków;
  • endWith (Przyrostek String) – sprawdza, czy ciąg kończy się podanym przyrostkiem;
  • zaczyna się od (przedrostek String) – sprawdza, czy ciąg zaczyna się od podanego przedrostka;
  • startWith (String prefix, int toffset) - sprawdza, czy ciąg znaków na podanej pozycji zaczyna się od podanego przedrostka;
  • równa się (Object anObject) - sprawdza, czy ciąg znaków jest identyczny z podanym obiektem;
  • getBytes () - zwraca bajtową reprezentację ciągu;
  • getChars (int srcBegin, int srcEnd, char[] dst, int dstBegin) - zwraca znakową reprezentację sekcji ciągu znaków;
  • hashCode () - kod skrótu ciągu;
  • indeksOf (int ch) - szukaj pierwszego wystąpienia znaku w ciągu;
  • indeksOf (int ch, int fromIndex) - szuka pierwszego wystąpienia znaku w ciągu znaków od podanej pozycji;
  • indeksOf (String str) - wyszukaj pierwsze wystąpienie podanego podciągu;
  • indeksOf (String str, int fromIndex) - szuka pierwszego wystąpienia podanego podciągu z podanej pozycji;
  • lastIndexOf (int ch) - szukaj ostatniego wystąpienia symbolu;
  • lastIndexOf (int ch, int fromIndex) - wyszukaj ostatnie wystąpienie znaku z podanej pozycji;
  • lastIndexOf (String str) - szukaj ostatniego wystąpienia ciągu;
  • lastIndexOf (String str, int fromIndex) - szuka ostatniego wystąpienia ciągu znaków z podanej pozycji;
  • zamień (char oldChar, char newChar) - zamiana jednego znaku w ciągu znaków na inny;
  • zamień (cel CharSequence, zamiana CharSequence) - zamiana jednego podłańcucha na inny;
  • substring (int BeginIndex, int endIndex) - zwraca podciąg jako ciąg znaków;
  • toLowerCase () - konwertuje ciąg znaków na małe litery;
  • toLowerCase (Locale locale) - konwertuje ciąg znaków na małe litery przy użyciu określonych ustawień regionalnych;
  • toUpperCase() - konwertuje ciąg znaków na wielkie litery;
  • toUpperCase (Locale locale) - konwertuje ciąg znaków na wielkie litery przy użyciu określonych ustawień regionalnych;
  • trim() - przycina puste znaki na końcach łańcucha;
  • valueOf(a) - statyczne metody konwersji różnych typów na ciąg znaków.
Metody wyszukiwania zwracają indeks wystąpienia lub -1, jeśli szukany element nie został znaleziony. Metody konwersji, takie jak zamiana, nie modyfikują samego ciągu, ale zwracają odpowiedni nowy obiekt ciągu. metody z wyrażeniami regularnymi Łańcuchy mają również wiele metod korzystających z wyrażeń regularnych :
  • dopasowania (String regex) - czy ciąg pasuje do podanego wyrażenia regularnego;
  • zamieńAll (String regex, String rplс) - zastępuje wszystkie wystąpienia ciągów znaków spełniających wyrażenie regularne określonym ciągiem znaków;
  • zamieńFirst (String regex, String rplс) - zastępuje pierwsze wystąpienie ciągu znaków pasującego do wyrażenia regularnego określonym ciągiem znaków;
  • split (String regex) - dzieli ciąg na części, granicami podziału są wystąpienia ciągów znaków spełniające wyrażenie regularne;
  • split (String regex, int limit) - podobny do poprzedniego, ale z ograniczeniem stosowania wyrażenia regularnego do łańcucha do wartości granicznej. Jeśli limit>0, wówczas rozmiar zwróconej tablicy ciągów nie przekroczy limitu. Jeśli limit<=0, wówczas wyrażenie regularne jest stosowane do ciągu nieograniczoną liczbę razy.
Link do oryginalnego źródła: http://darkraha.com/rus/java/lang/string/static_string.php
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION