<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>PhraseUtilities xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/example/haiku/PhraseUtilities.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.mina.example.haiku;
<a name="2" href="#2">2</a>   
<a name="3" href="#3">3</a>   <em class="jxr_javadoccomment">/**</em>
<a name="4" href="#4">4</a>   <em class="jxr_javadoccomment"> * @author Apache Mina Project (dev@mina.apache.org)</em>
<a name="5" href="#5">5</a>   <em class="jxr_javadoccomment"> * @version $Rev: $, $Date:  $</em>
<a name="6" href="#6">6</a>   <em class="jxr_javadoccomment"> */</em>
<a name="7" href="#7">7</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/example/haiku/PhraseUtilities.html">PhraseUtilities</a> {
<a name="8" href="#8">8</a>       <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> countSyllablesInPhrase(String phrase) {
<a name="9" href="#9">9</a>           <strong class="jxr_keyword">int</strong> syllables = 0;
<a name="10" href="#10">10</a>  
<a name="11" href="#11">11</a>          <strong class="jxr_keyword">for</strong> (String word : phrase.split(<span class="jxr_string">"[^&#92;&#92;w-]+"</span>)) {
<a name="12" href="#12">12</a>              <strong class="jxr_keyword">if</strong> (word.length() &gt; 0) {
<a name="13" href="#13">13</a>                  syllables += countSyllablesInWord(word.toLowerCase());
<a name="14" href="#14">14</a>              }
<a name="15" href="#15">15</a>          }
<a name="16" href="#16">16</a>  
<a name="17" href="#17">17</a>          <strong class="jxr_keyword">return</strong> syllables;
<a name="18" href="#18">18</a>      }
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> countSyllablesInWord(String word) {
<a name="21" href="#21">21</a>          <strong class="jxr_keyword">char</strong>[] chars = word.toCharArray();
<a name="22" href="#22">22</a>          <strong class="jxr_keyword">int</strong> syllables = 0;
<a name="23" href="#23">23</a>          <strong class="jxr_keyword">boolean</strong> lastWasVowel = false;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; chars.length; i++) {
<a name="26" href="#26">26</a>              <strong class="jxr_keyword">char</strong> c = chars[i];
<a name="27" href="#27">27</a>              <strong class="jxr_keyword">if</strong> (isVowel(c)) {
<a name="28" href="#28">28</a>                  <strong class="jxr_keyword">if</strong> (!lastWasVowel
<a name="29" href="#29">29</a>                          || (i &gt; 0 &amp;&amp; isE(chars, i - 1) &amp;&amp; isO(chars, i))) {
<a name="30" href="#30">30</a>                      ++syllables;
<a name="31" href="#31">31</a>                      lastWasVowel = <strong class="jxr_keyword">true</strong>;
<a name="32" href="#32">32</a>                  }
<a name="33" href="#33">33</a>              } <strong class="jxr_keyword">else</strong> {
<a name="34" href="#34">34</a>                  lastWasVowel = false;
<a name="35" href="#35">35</a>              }
<a name="36" href="#36">36</a>          }
<a name="37" href="#37">37</a>  
<a name="38" href="#38">38</a>          <strong class="jxr_keyword">if</strong> (word.endsWith(<span class="jxr_string">"oned"</span>) || word.endsWith(<span class="jxr_string">"ne"</span>)
<a name="39" href="#39">39</a>                  || word.endsWith(<span class="jxr_string">"ide"</span>) || word.endsWith(<span class="jxr_string">"ve"</span>)
<a name="40" href="#40">40</a>                  || word.endsWith(<span class="jxr_string">"fe"</span>) || word.endsWith(<span class="jxr_string">"nes"</span>)
<a name="41" href="#41">41</a>                  || word.endsWith(<span class="jxr_string">"mes"</span>)) {
<a name="42" href="#42">42</a>              --syllables;
<a name="43" href="#43">43</a>          }
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>          <strong class="jxr_keyword">return</strong> syllables;
<a name="46" href="#46">46</a>      }
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isE(<strong class="jxr_keyword">char</strong>[] chars, <strong class="jxr_keyword">int</strong> position) {
<a name="49" href="#49">49</a>          <strong class="jxr_keyword">return</strong> isCharacter(chars, position, 'e');
<a name="50" href="#50">50</a>      }
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isCharacter(<strong class="jxr_keyword">char</strong>[] chars, <strong class="jxr_keyword">int</strong> position, <strong class="jxr_keyword">char</strong> c) {
<a name="53" href="#53">53</a>          <strong class="jxr_keyword">return</strong> chars[position] == c;
<a name="54" href="#54">54</a>      }
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isO(<strong class="jxr_keyword">char</strong>[] chars, <strong class="jxr_keyword">int</strong> position) {
<a name="57" href="#57">57</a>          <strong class="jxr_keyword">return</strong> isCharacter(chars, position, 'o');
<a name="58" href="#58">58</a>      }
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isVowel(<strong class="jxr_keyword">char</strong> c) {
<a name="61" href="#61">61</a>          <strong class="jxr_keyword">return</strong> c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'
<a name="62" href="#62">62</a>                  || c == 'y';
<a name="63" href="#63">63</a>      }
<a name="64" href="#64">64</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

