﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class CharacterUtils
   | Apache Lucene.NET 4.8.0-beta00013 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class CharacterUtils
   | Apache Lucene.NET 4.8.0-beta00013 Documentation ">
    <meta name="generator" content="docfx 2.56.2.0">
    
    <link rel="shortcut icon" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/favicon.ico">
    <link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.css">
    <link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.css">
    <link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.css">
    <meta property="docfx:navrel" content="toc.html">
    <meta property="docfx:tocrel" content="analysis-common/toc.html">
    
    <meta property="docfx:rel" content="https://lucenenet.apache.org/docs/4.8.0-beta00009/">
    
  </head>
  <body data-spy="scroll" data-target="#affix" data-offset="120">
    <span id="forkongithub"><a href="https://github.com/apache/lucenenet" target="_blank">Fork me on GitHub</a></span>
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="/">
                <img id="logo" class="svg" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/lucene-net-color.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search">
            <ul class="level0 breadcrumb">
                <li>
                    <a href="https://lucenenet.apache.org/docs/4.8.0-beta00009/">API</a>
                     <span id="breadcrumb">
                        <ul class="breadcrumb">
                          <li></li>
                        </ul>
                    </span>   
                </li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items">
            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
          </div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Lucene.Net.Analysis.Util.CharacterUtils">
  
  
  <h1 id="Lucene_Net_Analysis_Util_CharacterUtils" data-uid="Lucene.Net.Analysis.Util.CharacterUtils" class="text-break">Class CharacterUtils
  </h1>
  <div class="markdown level0 summary"><p><a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.html">CharacterUtils</a> provides a unified interface to Character-related
operations to implement backwards compatible character operations based on a
<span class="xref">Lucene.Net.Util.LuceneVersion</span> instance.</p>
<div class="lucene-block lucene-internal">This is a Lucene.NET INTERNAL API, use at your own risk</div></div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><span class="xref">CharacterUtils</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Lucene.Net.Analysis.Util.html">Lucene.Net.Analysis.Util</a></h6>
  <h6><strong>Assembly</strong>: Lucene.Net.Analysis.Common.dll</h6>
  <h5 id="Lucene_Net_Analysis_Util_CharacterUtils_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract class CharacterUtils</code></pre>
  </div>
  <h3 id="methods">Methods
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_CodePointAt_J2N_Text_ICharSequence_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.CodePointAt(J2N.Text.ICharSequence%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L113">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointAt_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointAt*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointAt_J2N_Text_ICharSequence_System_Int32_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointAt(J2N.Text.ICharSequence,System.Int32)">CodePointAt(ICharSequence, Int32)</h4>
  <div class="markdown level1 summary"><p>Returns the code point at the given index of the <span class="xref">J2N.Text.ICharSequence</span>.
Depending on the <span class="xref">Lucene.Net.Util.LuceneVersion</span> passed to
<a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.html#Lucene_Net_Analysis_Util_CharacterUtils_GetInstance_Lucene_Net_Util_LuceneVersion_">GetInstance(LuceneVersion)</a> this method mimics the behavior
of <code>Character.CodePointAt(char[], int)</code> as it would have been
available on a Java 1.4 JVM or on a later virtual machine version.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract int CodePointAt(ICharSequence seq, int offset)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">J2N.Text.ICharSequence</span></td>
        <td><span class="parametername">seq</span></td>
        <td><p>a character sequence </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">offset</span></td>
        <td><p>the offset to the char values in the chars array to be converted</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>the Unicode code point at the given index </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.NullReferenceException</span></td>
        <td><ul>
<li>if the sequence is null. </li>
</ul>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><ul>
<li>if the value offset is negative or not less than the length of
the character sequence. </li>
</ul>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_CodePointAt_System_Char___System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.CodePointAt(System.Char%5B%5D%2CSystem.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L136">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointAt_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointAt*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointAt_System_Char___System_Int32_System_Int32_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointAt(System.Char[],System.Int32,System.Int32)">CodePointAt(Char[], Int32, Int32)</h4>
  <div class="markdown level1 summary"><p>Returns the code point at the given index of the char array where only elements
with index less than the limit are used.
Depending on the <span class="xref">Lucene.Net.Util.LuceneVersion</span> passed to
<a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.html#Lucene_Net_Analysis_Util_CharacterUtils_GetInstance_Lucene_Net_Util_LuceneVersion_">GetInstance(LuceneVersion)</a> this method mimics the behavior
of <code>Character.CodePointAt(char[], int)</code> as it would have been
available on a Java 1.4 JVM or on a later virtual machine version.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract int CodePointAt(char[] chars, int offset, int limit)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Char</span>[]</td>
        <td><span class="parametername">chars</span></td>
        <td><p>a character array </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">offset</span></td>
        <td><p>the offset to the char values in the chars array to be converted </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">limit</span></td>
        <td><p>the index afer the last element that should be used to calculate
      codepoint.  </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>the Unicode code point at the given index </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.NullReferenceException</span></td>
        <td><ul>
<li>if the array is null. </li>
</ul>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><ul>
<li>if the value offset is negative or not less than the length of
the char array. </li>
</ul>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_CodePointAt_System_String_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.CodePointAt(System.String%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L93">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointAt_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointAt*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointAt_System_String_System_Int32_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointAt(System.String,System.Int32)">CodePointAt(String, Int32)</h4>
  <div class="markdown level1 summary"><p>Returns the code point at the given index of the <span class="xref">System.String</span>.
Depending on the <span class="xref">Lucene.Net.Util.LuceneVersion</span> passed to
<a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.html#Lucene_Net_Analysis_Util_CharacterUtils_GetInstance_Lucene_Net_Util_LuceneVersion_">GetInstance(LuceneVersion)</a> this method mimics the behavior
of <code>Character.CodePointAt(char[], int)</code> as it would have been
available on a Java 1.4 JVM or on a later virtual machine version.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract int CodePointAt(string seq, int offset)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">seq</span></td>
        <td><p>a character sequence </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">offset</span></td>
        <td><p>the offset to the char values in the chars array to be converted</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>the Unicode code point at the given index </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.NullReferenceException</span></td>
        <td><ul>
<li>if the sequence is null. </li>
</ul>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><ul>
<li>if the value offset is negative or not less than the length of
the character sequence. </li>
</ul>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_J2N_Text_ICharSequence_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount(J2N.Text.ICharSequence)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L144">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_J2N_Text_ICharSequence_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount(J2N.Text.ICharSequence)">CodePointCount(ICharSequence)</h4>
  <div class="markdown level1 summary"><p>Return the number of characters in <code data-dev-comment-type="paramref" class="paramref">seq</code>. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract int CodePointCount(ICharSequence seq)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">J2N.Text.ICharSequence</span></td>
        <td><span class="parametername">seq</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_System_Char___.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount(System.Char%5B%5D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L148">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_System_Char___" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount(System.Char[])">CodePointCount(Char[])</h4>
  <div class="markdown level1 summary"><p>Return the number of characters in <code data-dev-comment-type="paramref" class="paramref">seq</code>. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract int CodePointCount(char[] seq)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Char</span>[]</td>
        <td><span class="parametername">seq</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_System_String_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount(System.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L140">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_System_String_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount(System.String)">CodePointCount(String)</h4>
  <div class="markdown level1 summary"><p>Return the number of characters in <code data-dev-comment-type="paramref" class="paramref">seq</code>. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract int CodePointCount(string seq)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">seq</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_System_Text_StringBuilder_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount(System.Text.StringBuilder)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L152">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_CodePointCount_System_Text_StringBuilder_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.CodePointCount(System.Text.StringBuilder)">CodePointCount(StringBuilder)</h4>
  <div class="markdown level1 summary"><p>Return the number of characters in <code data-dev-comment-type="paramref" class="paramref">seq</code>. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract int CodePointCount(StringBuilder seq)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Text.StringBuilder</span></td>
        <td><span class="parametername">seq</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_Fill_Lucene_Net_Analysis_Util_CharacterUtils_CharacterBuffer_System_IO_TextReader_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.Fill(Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer%2CSystem.IO.TextReader)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L314">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_Fill_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.Fill*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_Fill_Lucene_Net_Analysis_Util_CharacterUtils_CharacterBuffer_System_IO_TextReader_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.Fill(Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer,System.IO.TextReader)">Fill(CharacterUtils.CharacterBuffer, TextReader)</h4>
  <div class="markdown level1 summary"><p>Convenience method which calls <code>Fill(buffer, reader, buffer.Buffer.Length)</code>. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual bool Fill(CharacterUtils.CharacterBuffer buffer, TextReader reader)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer.html">CharacterUtils.CharacterBuffer</a></td>
        <td><span class="parametername">buffer</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.IO.TextReader</span></td>
        <td><span class="parametername">reader</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_Fill_Lucene_Net_Analysis_Util_CharacterUtils_CharacterBuffer_System_IO_TextReader_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.Fill(Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer%2CSystem.IO.TextReader%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L310">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_Fill_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.Fill*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_Fill_Lucene_Net_Analysis_Util_CharacterUtils_CharacterBuffer_System_IO_TextReader_System_Int32_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.Fill(Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer,System.IO.TextReader,System.Int32)">Fill(CharacterUtils.CharacterBuffer, TextReader, Int32)</h4>
  <div class="markdown level1 summary"><p>Fills the <a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer.html">CharacterUtils.CharacterBuffer</a> with characters read from the given
reader <span class="xref">System.IO.TextReader</span>. This method tries to read <pre><code>numChars</code></pre>
characters into the <a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer.html">CharacterUtils.CharacterBuffer</a>, each call to fill will start
filling the buffer from offset <code>0</code> up to <code data-dev-comment-type="paramref" class="paramref">numChars</code>.
In case code points can span across 2 java characters, this method may
only fill <code>numChars - 1</code> characters in order not to split in
the middle of a surrogate pair, even if there are remaining characters in
the <span class="xref">System.IO.TextReader</span>.
<p>
Depending on the <span class="xref">Lucene.Net.Util.LuceneVersion</span> passed to
<a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.html#Lucene_Net_Analysis_Util_CharacterUtils_GetInstance_Lucene_Net_Util_LuceneVersion_">GetInstance(LuceneVersion)</a> this method implements
supplementary character awareness when filling the given buffer. For all
<span class="xref">Lucene.Net.Util.LuceneVersion</span> &gt; 3.0 <a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.html#Lucene_Net_Analysis_Util_CharacterUtils_Fill_Lucene_Net_Analysis_Util_CharacterUtils_CharacterBuffer_System_IO_TextReader_System_Int32_">Fill(CharacterUtils.CharacterBuffer, TextReader, Int32)</a> guarantees
that the given <a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer.html">CharacterUtils.CharacterBuffer</a> will never contain a high surrogate
character as the last element in the buffer unless it is the last available
character in the reader. In other words, high and low surrogate pairs will
always be preserved across buffer boarders.
</p>
<p>
A return value of <code>false</code> means that this method call exhausted
the reader, but there may be some bytes which have been read, which can be
verified by checking whether <code>buffer.Length &gt; 0</code>.
</p></p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract bool Fill(CharacterUtils.CharacterBuffer buffer, TextReader reader, int numChars)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer.html">CharacterUtils.CharacterBuffer</a></td>
        <td><span class="parametername">buffer</span></td>
        <td><p>the buffer to fill. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.IO.TextReader</span></td>
        <td><span class="parametername">reader</span></td>
        <td><p>the reader to read characters from. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">numChars</span></td>
        <td><p>the number of chars to read </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><pre><code>false</code></pre> if and only if reader.read returned -1 while trying to fill the buffer </td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>if the reader throws an <span class="xref">System.IO.IOException</span>. </p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_GetInstance_Lucene_Net_Util_LuceneVersion_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.GetInstance(Lucene.Net.Util.LuceneVersion)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L57">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_GetInstance_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.GetInstance*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_GetInstance_Lucene_Net_Util_LuceneVersion_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.GetInstance(Lucene.Net.Util.LuceneVersion)">GetInstance(LuceneVersion)</h4>
  <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.html">CharacterUtils</a> implementation according to the given
<span class="xref">Lucene.Net.Util.LuceneVersion</span> instance.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static CharacterUtils GetInstance(LuceneVersion matchVersion)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">Lucene.Net.Util.LuceneVersion</span></td>
        <td><span class="parametername">matchVersion</span></td>
        <td><p>a version instance </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.html">CharacterUtils</a></td>
        <td><p>a <a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.html">CharacterUtils</a> implementation according to the given
<span class="xref">Lucene.Net.Util.LuceneVersion</span> instance. </p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_GetJava4Instance_Lucene_Net_Util_LuceneVersion_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.GetJava4Instance(Lucene.Net.Util.LuceneVersion)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L68">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_GetJava4Instance_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.GetJava4Instance*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_GetJava4Instance_Lucene_Net_Util_LuceneVersion_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.GetJava4Instance(Lucene.Net.Util.LuceneVersion)">GetJava4Instance(LuceneVersion)</h4>
  <div class="markdown level1 summary"><p>Return a <a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.html">CharacterUtils</a> instance compatible with Java 1.4. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static CharacterUtils GetJava4Instance(LuceneVersion matchVersion)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">Lucene.Net.Util.LuceneVersion</span></td>
        <td><span class="parametername">matchVersion</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.html">CharacterUtils</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_NewCharacterBuffer_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.NewCharacterBuffer(System.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L161">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_NewCharacterBuffer_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.NewCharacterBuffer*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_NewCharacterBuffer_System_Int32_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.NewCharacterBuffer(System.Int32)">NewCharacterBuffer(Int32)</h4>
  <div class="markdown level1 summary"><p>Creates a new <a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer.html">CharacterUtils.CharacterBuffer</a> and allocates a <span class="xref">char[]</span>
of the given bufferSize.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static CharacterUtils.CharacterBuffer NewCharacterBuffer(int bufferSize)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">bufferSize</span></td>
        <td><p>the internal char buffer size, must be <code>&gt;= 2</code> </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer.html">CharacterUtils.CharacterBuffer</a></td>
        <td><p>a new <a class="xref" href="Lucene.Net.Analysis.Util.CharacterUtils.CharacterBuffer.html">CharacterUtils.CharacterBuffer</a> instance. </p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_OffsetByCodePoints_System_Char___System_Int32_System_Int32_System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.OffsetByCodePoints(System.Char%5B%5D%2CSystem.Int32%2CSystem.Int32%2CSystem.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L323">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_OffsetByCodePoints_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.OffsetByCodePoints*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_OffsetByCodePoints_System_Char___System_Int32_System_Int32_System_Int32_System_Int32_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.OffsetByCodePoints(System.Char[],System.Int32,System.Int32,System.Int32,System.Int32)">OffsetByCodePoints(Char[], Int32, Int32, Int32, Int32)</h4>
  <div class="markdown level1 summary"><p>Return the index within <code>buf[start:start+count]</code> which is by <code data-dev-comment-type="paramref" class="paramref">offset</code>
code points from <code data-dev-comment-type="paramref" class="paramref">index</code>. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract int OffsetByCodePoints(char[] buf, int start, int count, int index, int offset)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Char</span>[]</td>
        <td><span class="parametername">buf</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">start</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">offset</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_ToChars_System_Int32___System_Int32_System_Int32_System_Char___System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.ToChars(System.Int32%5B%5D%2CSystem.Int32%2CSystem.Int32%2CSystem.Char%5B%5D%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L262">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_ToChars_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.ToChars*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_ToChars_System_Int32___System_Int32_System_Int32_System_Char___System_Int32_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.ToChars(System.Int32[],System.Int32,System.Int32,System.Char[],System.Int32)">ToChars(Int32[], Int32, Int32, Char[], Int32)</h4>
  <div class="markdown level1 summary"><p>Converts a sequence of unicode code points to a sequence of .NET characters. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public int ToChars(int[] src, int srcOff, int srcLen, char[] dest, int destOff)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span>[]</td>
        <td><span class="parametername">src</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">srcOff</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">srcLen</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Char</span>[]</td>
        <td><span class="parametername">dest</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">destOff</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>the number of chars written to the destination buffer  </p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_ToCodePoints_System_Char___System_Int32_System_Int32_System_Int32___System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.ToCodePoints(System.Char%5B%5D%2CSystem.Int32%2CSystem.Int32%2CSystem.Int32%5B%5D%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L242">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_ToCodePoints_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.ToCodePoints*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_ToCodePoints_System_Char___System_Int32_System_Int32_System_Int32___System_Int32_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.ToCodePoints(System.Char[],System.Int32,System.Int32,System.Int32[],System.Int32)">ToCodePoints(Char[], Int32, Int32, Int32[], Int32)</h4>
  <div class="markdown level1 summary"><p>Converts a sequence of .NET characters to a sequence of unicode code points. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public int ToCodePoints(char[] src, int srcOff, int srcLen, int[] dest, int destOff)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Char</span>[]</td>
        <td><span class="parametername">src</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">srcOff</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">srcLen</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span>[]</td>
        <td><span class="parametername">dest</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">destOff</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The number of code points written to the destination buffer.  </p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_ToLower_System_Char___System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.ToLower(System.Char%5B%5D%2CSystem.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L177">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_ToLower_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.ToLower*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_ToLower_System_Char___System_Int32_System_Int32_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.ToLower(System.Char[],System.Int32,System.Int32)">ToLower(Char[], Int32, Int32)</h4>
  <div class="markdown level1 summary"><p>Converts each unicode codepoint to lowerCase via <span class="xref">System.Globalization.TextInfo.ToLower(System.String)</span> in the invariant culture starting 
at the given offset. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void ToLower(char[] buffer, int offset, int length)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Char</span>[]</td>
        <td><span class="parametername">buffer</span></td>
        <td><p>the char buffer to lowercase </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">offset</span></td>
        <td><p>the offset to start at </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">length</span></td>
        <td><p>the number of characters in the buffer to lower case </p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils_ToUpper_System_Char___System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils.ToUpper(System.Char%5B%5D%2CSystem.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L211">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Util_CharacterUtils_ToUpper_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.ToUpper*"></a>
  <h4 id="Lucene_Net_Analysis_Util_CharacterUtils_ToUpper_System_Char___System_Int32_System_Int32_" data-uid="Lucene.Net.Analysis.Util.CharacterUtils.ToUpper(System.Char[],System.Int32,System.Int32)">ToUpper(Char[], Int32, Int32)</h4>
  <div class="markdown level1 summary"><p>Converts each unicode codepoint to UpperCase via <span class="xref">System.Globalization.TextInfo.ToUpper(System.String)</span> in the invariant culture starting 
at the given offset. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void ToUpper(char[] buffer, int offset, int length)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Char</span>[]</td>
        <td><span class="parametername">buffer</span></td>
        <td><p>the char buffer to UPPERCASE </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">offset</span></td>
        <td><p>the offset to start at </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">length</span></td>
        <td><p>the number of characters in the buffer to lower case </p>
</td>
      </tr>
    </tbody>
  </table>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <div class="contribution">
                <ul class="nav">
                  <li>
                    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Util_CharacterUtils.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Util.CharacterUtils%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
                  </li>
                  <li>
                    <a href="https://github.com/apache/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Analysis.Common/Analysis/Util/CharacterUtils.cs/#L39" class="contribution-link">View Source</a>
                  </li>
                </ul>
              </div>
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            Copyright © 2020 The Apache Software Foundation, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache License, Version 2.0</a><br> <small>Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</small>
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.js"></script>
    <script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.js"></script>
  </body>
</html>
