有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

基于第一个值遍历所有值的java条件循环

好,

所以我在这个问题的措辞上有点问题。也许举个例子更容易:

假设我们考虑了四个季节:冬天,施普灵河,夏天和秋天(按那个特定的顺序)。现在假设我们有以下文本:

I love the Summer.
The Winter is not a good season. 
Spring brings more joy. 
And Fall is the best. 

现在,假设我有一个读取文件的程序,在遇到第一个季节(在本例中为夏季)时,用第一个实例替换所有其他季节。然后,它再次打印文本,这一次是下一季,反复打印,直到所有季都被覆盖

例如,上述文本应产生以下输出:

//..Replace with 'Summer'
I love the Summer.
The Summer is not a good season. 
Summer brings more joy. 
And Summer is the best. 
//.. Replace with 'Winter'
I love the Winter.
The Winter is not a good season. 
Winter brings more joy. 
And Winter is the best.
//.. Replace with 'Spring'
I love the Spring.
The Spring is not a good season. 
Spring brings more joy. 
And Spring is the best.
//.. Replace with 'Fall'
I love the Fall.
The Fall is not a good season. 
Fall brings more joy. 
And Fall is the best. 

然而,如果这首诗读到:

I love the Fall.
The Winter is not a good season. 
Spring brings more joy. 
And Summer is the best. 

该计划将首先用“秋季”替换一个季节的每一个实例,然后对冬季、春季和夏季执行同样的操作。(因为冬季、春季、夏季、秋季)是默认顺序

简而言之:遇到的第一季是定义“替换”动作的第一次迭代。也就是说,如果遇到“夏天”,整个文本的季节都会被夏天所取代。然后是冬天,春天和秋天。如果首先遇到“春天”,则文本首先将所有季节替换为“春天”,然后替换为冬季、夏季和秋季

我知道可以通过编写一系列条件语句来实现这一点,例如:

if summer
  replace summer
  replace winter
  replace spring
  replace fall

else if spring
  replace spring
  replace winter
  replace summer
  replace fall

else if winter
  replace winter
  replace spring
  replace summer
  replace fall

else if fall
  replace fall
  replace winter
  replace spring
  replace summer

然而,这似乎不是最好的办法。我知道文本在某个时候必须替换为四季。我也知道这些季节的顺序。唯一重要的是第一个季节实例,它决定了哪个季节将被从它的位置上移除,并放在前面

如果这个问题有任何意义的话,我将非常感谢一些建议。我不是特别寻找代码,而是寻找如何处理此类问题的技巧

谢谢各位


共 (3) 个答案

  1. # 1 楼答案

    一种方法是把季节列在一个列表中,并准确地读四遍

    1. 列表迭代从第一季开始
    2. 如果你在4读之前到达列表的末尾,请返回到开头
  2. # 2 楼答案

    您可以创建所有季节的有序列表(冬季、春季、夏季、秋季),然后当您遇到第一个季节重新设置范围时,示例列表中的列表将变成(夏季、秋季、冬季、冲刺

    在这之后,你需要做的就是在重新设置的列表上迭代,并按照你所说的替换文本

  3. # 3 楼答案

    简单的方法是:

    1. 按照单词出现的顺序提取单词,并将其放入列表中
    2. 循环浏览列表中的每个元素
    3. 在该循环中,循环遍历每个可能的单词,并将其替换为步骤2中的当前元素
    4. 打印结果

    我不太懂Java,但这里有一个关于replacing multiple strings的答案,它可能很有用