2016-07-14 51 views

回答

1

厚積薄發調用setText前的字符串:

try (Formatter fmt = new Formatter()) { 
    while(factorNumber <= finalValue){ 
    if(finalValue % factorNumber == 0){ 
     fmt.format("%s is a factor of %s%n", factorNumber, finalValue); 
    } 
    factorNumber ++; 
    } 
    tv2.setText(fmt.toString()); 
} 

請注意,您不需要測試許多因素:您可以停止一次finalValue > sqrt(finalValue);或者:

while (factorNumber * factorNumber <= finalValue) { 
1

您可以附加到文本視圖或簡單地創建一個因子列表並顯示它。

ArrayList<Integer> list = new ArrayList<>(); 

while(factorNumber <= finalValue){ 
    if(finalValue % factorNumber == 0){ 
     list.add(factorNumber); 
    } 
    factorNumber ++; 
} 

tv2.setText(factorNumber + " is a factor of " + list); 

不要忘了導入:

import java.util.ArrayList; 
+1

我想你的意思是'factorNumber'添加到列表中,而不是'finalValue'反覆。 –

+0

哦yes..it是我的錯誤。編輯我的答案。@ AndyTurner – Kaushal28

0

嘗試使用追加

boolean isFirstTime = true; 
while(factorNumber <= finalValue){ 
    if(finalValue % factorNumber == 0){ 
    if(isFirstTime) 
    { 
     tv2.append(factorNumber); 
     isFirstTime = false; 
    }else{ 
     tv2.append(","+factorNumber); 
    } 
    } 
    factorNumber ++; 
} 
tv2.append(" is a factor of " + finalValue + "\n");