자바에서stringBuilder의 사용법 분석

6054 단어 javastringBuilder
String 객체는 변경할 수 없습니다.매번 시스템을 사용한다.String 클래스의 방법 중 하나는 메모리에 새로운 문자열 대상을 만들어야 하기 때문에 이 새로운 대상에 새로운 공간을 할당해야 합니다.문자열에 대한 반복적인 수정이 필요한 경우 새 String 객체를 만드는 것과 관련된 시스템 비용이 많이 들 수 있습니다.새 객체를 만들지 않고 문자열을 수정하려면 System을 사용할 수 있습니다.Text.StringBuilder 클래스입니다.예를 들어 하나의 순환에서 많은 문자열을 연결할 때 StringBuilder 클래스를 사용하면 성능을 향상시킬 수 있다.
재부팅된 구조 함수 방법으로 변수를 초기화하면 다음 예에서 설명한 바와 같이 StringBuilder 클래스의 새로운 실례를 만들 수 있습니다.

StringBuilder MyStringBuilder = new StringBuilder("Hello World!");

(1) 용량 및 길이 설정
StringBuilder 객체는 동적 객체이므로 봉인된 문자열의 문자 수를 확장할 수 있지만 최대 문자 수에 대한 값을 지정할 수 있습니다.이 값은 현재 StringBuilder 객체가 수용하는 문자열 길이와 혼동해서는 안 되는 객체의 용량이라고 합니다.예를 들어, 문자열 "Hello"(길이 5)가 있는 StringBuilder 클래스의 새 인스턴스를 생성하고 객체의 최대 용량을 25로 지정할 수 있습니다.StringBuilder를 수정할 때 용량에 도달하기 전에는 공간을 재할당하지 않습니다.용량에 도달하면 새로운 공간이 자동으로 분배되고 용량이 배로 증가합니다.재부팅된 구조 함수 중 하나를 사용하여 StringBuilder 클래스의 용량을 지정할 수 있습니다.다음 코드 예제에서는 MyStringBuilder 객체를 최대 25개의 공백으로 확장할 수 있도록 지정합니다.

StringBuilderMyStringBuilder = new StringBuilder("Hello World!", 25);
또한 읽기/쓰기 Capacity 속성을 사용하여 객체의 최대 길이를 설정할 수 있습니다.다음 코드 예제에서는 Capacity 속성을 사용하여 객체의 최대 길이를 정의합니다.

MyStringBuilder.Capacity= 25;
(2) 다음과 같은 몇 가지 일반적인 방법은 다음과 같습니다.
(1) Append 메서드는 현재 StringBuilder 객체가 나타내는 문자열의 끝에 텍스트나 객체의 문자열 표현 형식을 추가하는 데 사용됩니다.다음 예제에서는 StringBuilder 객체를 "Hello World"로 초기화하고 일부 텍스트를 해당 객체의 끝에 추가합니다.필요에 따라 자동으로 공간이 할당됩니다.

StringBuilderMyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Append(" What a beautiful day.");
Console.WriteLine(MyStringBuilder);
이 예는 Hello World!What abeautiful day.콘솔에 표시됩니다.
(2) AppendFormat 방법은 텍스트를 StringBuilder의 끝에 추가하고 IFormattable 인터페이스를 실현하기 때문에 포맷 부분에서 기술한 표준 형식 문자열을 받아들일 수 있습니다.이 방법을 사용하면 변수의 형식을 사용자 정의하고 이 값을 StringBuilder 뒤에 추가할 수 있습니다.다음 예제에서는 AppendFormat 방법을 사용하여 StringBuilder의 끝에 통화 값 형식으로 설정된 정수 값을 배치합니다.

int MyInt= 25;
StringBuilder MyStringBuilder = new StringBuilder("Your total is ");
MyStringBuilder.AppendFormat("{0:C} ", MyInt);
Console.WriteLine(MyStringBuilder);
이 예는 Your total is $25.00을 콘솔에 표시합니다.
(3) Insert 메서드는 현재 StringBuilder의 지정된 위치에 문자열이나 객체를 추가합니다.다음 예제에서는 이 방법을 사용하여 StringBuilder의 여섯 번째 위치에 단어를 삽입합니다. 
 

StringBuilderMyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Insert(6,"Beautiful ");
Console.WriteLine(MyStringBuilder);
이 예는 Hello Beautiful World!콘솔에 표시됩니다.
(4) Remove 메서드를 사용하여 현재 StringBuilder에서 지정된 숫자의 문자를 제거할 수 있습니다. 제거 프로세스는 0부터 시작하는 색인에서 시작됩니다.다음 예제에서는 Remove 방법을 사용하여 StringBuilder를 단축합니다.

StringBuilderMyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Remove(5,7);
Console.WriteLine(MyStringBuilder);
이 예는 Hello를 콘솔에 표시합니다.
(5) Replace 메서드를 사용하면 StringBuilder 객체의 문자를 다른 지정된 문자로 대체할 수 있습니다.다음 예제에서는 Replace 방법을 사용하여 StringBuilder 객체를 검색하고 모든 느낌표 문자를 찾습니다(!).물음표 문자(?)그것들을 바꾸다.

StringBuilderMyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Replace('!', '?');
Console.WriteLine(MyStringBuilder);

이 예는 Hello World?콘솔에 표시

getSqlMapClientTemplate().queryForList((new StringBuilder()).append(entityClass.getName()).append(".select").toString(), null);

Java용 StringBuilder 클래스
만약 프로그램이 추가 문자열에 대한 수요가 빈번하다면, + 를 사용하여 문자열의 직렬을 하는 것을 권장하지 않습니다.자바 사용을 고려할 수 있습니다.lang. StringBuilder 클래스. 이 클래스를 사용하면 기본적으로 16개의 문자의 길이가 발생합니다. 초기 길이를 지정할 수도 있습니다.추가 문자가 허용 가능한 길이를 초과하면 StringBuilder 객체는 자동으로 추가 문자를 수용하기 위해 길이를 증가합니다.문자열을 자주 추가할 필요가 있다면, StringBuilder 클래스를 사용하면 효율을 크게 높일 수 있습니다.다음 코드:
Java 코드
 

public  class AppendStringTest  
{  
   public  static  void main(String[] args)  
      {  
          String text = "" ;  
         
          long beginTime = System.currentTimeMillis();  
          for ( int i= 0 ;i< 10000 ;i++)  
             text = text + i;  
          long endTime = System.currentTimeMillis();  
          System.out.println(" :" +(endTime-beginTime));  
  
          StringBuilder sb = new StringBuilder ( "" );  
          beginTime = System.currentTimeMillis();  
          for ( int i= 0 ;i< 10000 ;i++)  
             sb.append(String.valueOf(i));  
          endTime = System.currentTimeMillis();  
          System.out.println(" :" +(endTime-beginTime));  
  
      }  
}  
public class AppendStringTest
{
   public static void main(String[] args)
      {
          String text = "";
        
          long beginTime = System.currentTimeMillis();
          for(int i=0;i<10000;i++)
             text = text + i;
          long endTime = System.currentTimeMillis();
          System.out.println(" :"+(endTime-beginTime));

          StringBuilder sb = new StringBuilder ("");
          beginTime = System.currentTimeMillis();
          for(int i=0;i<10000;i++)
             sb.append(String.valueOf(i));
          endTime = System.currentTimeMillis();
          System.out.println(" :"+(endTime-beginTime));

      }
} 
이 세그먼트 코드 출력:
실행 시간: 3188
실행 시간: 15
StringBuilder는 j2se1.5.0에서만 추가된 클래스입니다. 이전 버전에서 같은 수요가 있으면java를 사용합니다.util.StringBuffer.사실 StringBuilder는 StringBuffer와 같은 조작 인터페이스를 가지도록 설계되었다.단일 비스레드(MultiThread) 상황에서 StringBuilder를 사용하면 비교적 좋은 효율을 얻을 수 있습니다. 왜냐하면 StringBuilder는 동기화 문제를 처리하지 않기 때문입니다.StringBuffer는 동기화 문제를 처리하고 StringBuilder가 다중 스레드에서 조작될 경우 StringBuffer를 사용하여 대상이 스스로 동기화 문제를 관리하도록 합니다.
이상의 자바에서stringBuilder의 용법은 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기