【问题标题】:Array incrementing and i++ issues数组递增和 i++ 问题
【发布时间】:2013-03-18 03:26:40
【问题描述】:

我正在尝试使用i++ 将数组的某些部分存储在一个循环中。但不是增加 1,我真的需要它增加 2。

例如:

import java.util.ArrayList;
import java.util.Arrays;
import javax.swing.JOptionPane;

public class PeerTutoring
{
    public static void main(String[] args)
    {
        ArrayList<String> list = new ArrayList<String>();

        int a = 0;
        int b = 1;
        String name, degree;
        String line;
        line = JOptionPane.showInputDialog("Inputs");
        String[] userinput = line.split("\\s+");

        for(int i = 0; i < userinput.length; i++)
        {
            name = userinput[a];
            degree = userinput[b];
            a+=2;
            b+=2;
        }
    }

    public static String sort(String name)
    {
        String tutors = "Tutor List";
        ArrayList<String> names = new ArrayList<String> ();
        names.add(userinput[0]);
        names.add(userinput[2]);
        names.add(userinput[4]);
        names.add(userinput[6]);
        names.add(userinput[8]);
        names.add(userinput[10]);
        names.add(userinput[12]);
        names.add(userinput[14]);
        names.add(userinput[16]);
        names.add(userinput[18]);
    }
}

我希望a 从 0 开始,b 从 1 开始,然后每次我希望它增加 2。 (因为每个名字都用空格分隔)我想我将不得不合并一些类似于userinput[a + 1] 的东西。但我只是想知道是否有更简单的方法。

【问题讨论】:

    标签: java arrays string arraylist


    【解决方案1】:
    for(i=0, i < linesize; i += 2)
    

    附带说明,如果您打算之后使用变量,请确保在循环外初始化变量,否则它们会丢失。

            int a = 0;
            int b = 1;
            String name, degree;
    
            for(i=0, i < linesize; i += 2)
            {
                int linesize = line.size();
                String line;
                line = JOptionPane.showInputDialog("Please enter tutor name and 
                their highest earned degree.");
                String[] userinput = line.split("\\s+");
                name = userinput[a];
                degree = userinput[b];
                a++;
                b++;
            }
    

    【讨论】:

    • 好吧,它似乎正在工作,但是,我的单独方法排序似乎无法找到用户输入。我想通过发送字符串名称,它可以访问它们。
    • 请详细解释您到底要做什么,因为我有点困惑。当你被提示输入时,它应该遵循“”的语法,空格是用来分隔两者的。在顶部的代码中,从不调用 sort 方法。另外,如果您可以选择一个对您也有帮助的最佳答案。
    • 我的排序方法真的可以对任何东西进行排序(我不知道我为什么这么称呼它)。它只是将数组中的名称(每个其他用户输入)放入稍后将组织的列表中。(我还没有对学位做过任何事情)我还没有打电话给我,我不相信。后来我打算先做 sort(name),然后是 undetermined degree 方法。
    • 好的。好吧,只需确保在添加输入时遵循正确的格式。 split("\\s+") 通过空格字符将行分成两个标记。
    • 是我的排序方法没有找到用户输入的错误,因为我还没有完成排序(名称);还是其他原因?
    【解决方案2】:

    您的选择是:

    i++; i++;(您不能在 for 循环结构中使用它,因为您需要一条语句。)

    i += 2;

    i = i + 2;

    【讨论】:

      【解决方案3】:
          String line;
          line = JOptionPane.showInputDialog("Please enter tutor name and 
          their highest earned degree.");
          String[] userinput = line.split("\\s+");
      
          for(int i=0, i < userinput.length; ){
          String name = userinput[i++];
          String degree = userinput[i++];
      

      ...

      }
      

      【讨论】:

        猜你喜欢
        • 2022-07-20
        • 2014-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-21
        • 1970-01-01
        • 1970-01-01
        • 2020-09-19
        相关资源
        最近更新 更多