选择字符串的特定部分

时间:2018-03-26 03:10:59

标签: java arrays string

我是编程新手,目前正在学习Java简介。我本周的任务,要求我们以特定的方式打印出一系列课程。这是我的代码:

package u9a1_defineclassinstantiateobj;

import java.util.Scanner;

/**
 *
 * @author Staci
 */
public class U9A1_DefineClassInstantiateObj {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Staci's Copy");

        Scanner input = new Scanner(System.in);

        String[][] courses = {
            {"IT1006", "IT4782", "IT4789", "IT4079", "IT2230", "IT3345", "IT2249"},
            {"6", "3", "3", "6", "3", "3", "6"}              
        };


        System.out.println("course Objects each has a code (e.g. IT1006) and credit hours (e.g. 6)");
        System.out.println("The number inside the [] is the display number");
        System.out.println("The number inside the () is the credit hours for the course");
        for(int i = 0; i < courses[0].length; i++ ) 
            System.out.println("[" + (i+1) + "]" + courses[0][i] + "(" + courses[1][i] + ")");

    }

}

我需要,而不是每行的所有课程编号,每行的第一个课程(IT1006),没有任何[]和()数字的变化。我觉得这很简单,但我无法理解。感谢您的所有帮助和指导。

输出:

enter image description here

不应在输出中每行定义每个课程,而应仅定义课程IT1006,而行号和课程学分保持不变。

2 个答案:

答案 0 :(得分:3)

如果我理解了您的问题,您只需将courses[0][i]更改为courses[0][0]

即可
System.out.println("[" + (i + 1) + "]" + courses[0][0] + "(" + courses[1][i] + ")");

然后输出

Staci's Copy
course Objects each has a code (e.g. IT1006) and credit hours (e.g. 6)
The number inside the [] is the display number
The number inside the () is the credit hours for the course
[1]IT1006(6)
[2]IT1006(3)
[3]IT1006(3)
[4]IT1006(6)
[5]IT1006(3)
[6]IT1006(3)
[7]IT1006(6)

我发现更容易推理格式化的io ,以防我误解了你的请求,或只是为了让它更容易阅读 - 我会做

System.out.printf("[%d]%s(%s)%n", i + 1, courses[0][0], courses[1][i]);

然后,您可以调整[](),而无需为输出的变量进行额外转义。

答案 1 :(得分:0)

如果您只想要第一个数据,请删除循环并添加:

System.out.println("[" + (1) + "]" + courses[0][0] + "(" + courses[1][0] + ")");