初学Android Studio关注TextView和字符串

时间:2016-07-14 15:39:18

标签: java android

基本上,我正在尝试创建一个找到数字因子的应用程序,但我不完全确定要显示所有因素,现在它只显示最后一个因素。

while(factorNumber <= finalValue){ 
  if(finalValue % factorNumber == 0){
    tv2.setText(factorNumber + " is a factor of " + finalValue);
  } 
  factorNumber ++;
}

3 个答案:

答案 0 :(得分: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 :(得分: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;

答案 2 :(得分: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");