【问题标题】:How to take the last value of a for loop in Java?如何在Java中获取for循环的最后一个值?
【发布时间】:2019-03-02 22:35:12
【问题描述】:
import java.util.Scanner;
public class Problem1{
  public static void main(String[] args){
    //input
    Scanner kb = new Scanner(System.in);
    String word,letter;
    int counter=0, match,value;
    word=kb.next();
    word=word.toLowerCase();
    letter=kb.next();
    letter=letter.toLowerCase();
    //loop
    for (int i=0;i<word.length();i++)
      if (word.charAt(i)==letter.charAt(0)){
        counter++;
        match=i;
    System.out.print(match);
    }
    if (counter==0)
      System.out.print(-1);
  }
}

我必须在 Codio 中执行这个程序。该程序将读取一个单词和一个字母,检查字母是否在单词中。

如果是,它将打印单词中字母的索引; 如果该字母出现不止一次,它将打印最后一个位置。 如果字母不在单词中,它将打印-1。

当我在 Codio 中运行它时,有 3 个位置有字母:2、3 和 5。我只想取 5。

如果有人能帮我解决这个问题,我将不胜感激。

【问题讨论】:

  • 在循环外声明一个变量。当您找到匹配的值时,更新它。循环完成后,局部变量将保存分配给它的最后一个值。
  • word.lastIndexOf(letter); 怎么样?

标签: java loops for-loop iteration


【解决方案1】:

如果你只想输出你最后的发现,你需要移动

System.out.print(match);

退出循环。

但在打印match 之前,请确保您的计数器为&gt;0。否则你会得到0-1 作为输出。

要做到这一点,要么添加另一个if (counter &gt; 0) { },要么将打印移动到现有if (counter == 0)的else块中

【讨论】:

  • 嗨,这对我问的检查有效!但另一张支票有问题。预计该检查将打印 -1,但它打印了 0-1。你能帮我解决这个问题吗?
  • 在打印 match 之前检查计数器 >0 您可以将 else 作为 if (counter==0) 执行此操作
  • 非常感谢,所有检查都通过了!请收下这张漂亮的绿色支票!
  • 我很高兴能帮上忙!祝你有美好的一天。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 2015-04-08
  • 2021-08-20
  • 1970-01-01
  • 2022-01-03
  • 2021-12-27
  • 1970-01-01
相关资源
最近更新 更多