2017-10-20 86 views
0

好的,所以我創建了一個循環,從字符串中刪除所有元音,直到字符串等於10個字符(後來爲140)。如果循環完成並且鳴叫仍然大於10個字符,我們必須使用另一個循環隨機地繼續刪除字符(空格除外),直到字符串爲10個字符。現在我的程序運行,直到第一個循環結束,然後停止,而不執行其他循環。我如何做到這一點,所以一旦檢查元音它會開始刪除隨機數字?我不允許使用(Stringbuilder,replace等),所以原諒代碼!以下是我迄今爲止:循環刪除元音,如果第一個循環小於10,則添加新循環

import java.util.Random; 
import java.util.Scanner; 
public class TweetCompressor { 
    public static void main(String[] args) { 
     Scanner keyboard = new Scanner(System.in); 
     String s = ""; 
     System.out.println("Type a tweet: "); 
     String input = keyboard.nextLine(); 
     Random rand = new Random(); 
     int f = 0; 
     int tweetLengthAllowed = 10; 

     for(int i = 0; i < tweetLengthAllowed; i++) { 
      char c = input.charAt(i); 
      if(c == 'a'|| c == 'e'|| c == 'i'|| c == 'o'|| c =='u' || 
        c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') { 

       f = 1; 
       tweetLengthAllowed++; 
      } 
      else{ 
       s = s += c; 
       f = 0; 
      } 

     } 
     if(s.equals(tweetLengthAllowed) == false){ 
      int tweet = rand.nextInt(tweetLengthAllowed); 

      String shortenedTweetA = input.substring(0, tweet); 
      String shortenedTweetB = input.substring(tweet + 1); 

      input = shortenedTweetA + shortenedTweetB; 
      f = 0; 

     } 

     System.out.println(s); 

    } 
} 
+1

你能澄清兩個半小時前問你這個問題的三個答案有什麼問題嗎? –

回答

1

我認爲你需要替換此行:

if(s.equals(tweetLengthAllowed) == false){ 

有:

if(s.length() > tweetLengthAllowed){ 

雖然這不會給你一個循環。您可能會改爲需要:

while(s.length() > tweetLengthAllowed){ 

,並在循環中,你將需要縮短字符串分配回s,不input