簡體   English   中英

我在println時字符未添加到字符串中嗎?

[英]Char not adding to my string when i println?

我正在制作一個方法presentParticiple,該方法返回單詞EnglishWord的當前分詞。

當我運行程序並且EnglishWord以輔音結尾(第二個if語句)時,未添加我聲明的char。 我做錯了什么?

private String ending1 = ".*[b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,y,z]e";
private String consonant = ".*[b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,y,z]";

public void run() {
    presentParticiple("jam");           
}

private String presentParticiple(String EnglishWord) {
    String correctWord = "";
    if (EnglishWord.endsWith(ending1)) {
        correctWord = EnglishWord.substring(0,EnglishWord.length()-1)+"ing";
    }

    else if (EnglishWord.endsWith(consonant)) {
        char ch = EnglishWord.charAt(EnglishWord.length());
        correctWord = EnglishWord.substring(0, EnglishWord.length())+ch+"ing";


    } else {
        correctWord = EnglishWord+"ing";
    }
    println(correctWord);
    return correctWord;
}

這是一些有效的代碼(結合了上面的建議)。

public class EnglishTest
{
  public static void main (String[] args)
  {
    String[] words = { "jam", "rue", "raze", "knock", "need" };
    for (String word : words)
      presentParticiple (word);
  }

  private static final String ending1 = ".*[b-df-hj-np-tv-z]e";
  private static final String consonant = ".*[b-df-hj-np-tv-z]";

  private static String presentParticiple (String englishWord)
  {
    String correctWord = "";
    if (englishWord.matches (ending1))
      correctWord = englishWord.substring (0, englishWord.length () - 1) + "ing";
    else if (englishWord.matches (consonant))
    {
      char ch = englishWord.charAt (englishWord.length () - 1);
      correctWord = englishWord + ch + "ing";
    }
    else
      correctWord = englishWord + "ing";

    System.out.println (correctWord);
    return correctWord;
  }
}

您的算法有問題。 例如,嘗試“敲門”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM