Computer Science A
Course Progress
0/0
OCS Build and Lesson
Code Runner - Java
Code Runner - Examples
Code Runner - JavaScript
FRQ - Methods and Control Structures
Challenge Submission Test
2021 FRQ 3
2023 FRQ 3
2024 FRQ 3
2024 FRQ 2
2024 FRQ 1
2024 FRQ 4
FRQ 2 - Sign Class
2023 FRQ 1
2021 FRQ 2
2019 FRQ 4
2019 FRQ 2
2019 FRQ 1
2016 FRQ 3
2018 FRQ Question 4
2018 FRQ Question 3
2018 FRQ Question 2
2018 FRQ Question 1
2017 FRQ 4
2017 FRQ 3
2017 FRQ Question 2
2017 FRQ 1
2016 FRQ 4
2016 FRQ 2
2016 FRQ Q1
FRQ - 2D Arrays
FRQ - ArrayLists
2025 FRQ 4
2025 FRQ 3
2025 FRQ 2
2025 FRQ 1
FRQ - Classes
FRQ - Array
2023 FRQ 4
2022 FRQ 4
2022 FRQ 3
2022 FRQ 2
2022 FRQ 1
2021 FRQ 4
2021 FRQ 1
2015 FRQ 4
2015 FRQ 2
2015 FRQ 1
2015 FRQ 3
2014 FRQ Q2 - Writing a Class
2019 FRQ 3
2014 FRQ 1
Sprint View
Week 19
FRQ 2 - Sign Class
FRQ 2 - Sign Class
2 min read
- FRQ 2: Sign Class
- Key Rules:
- Code Runner Challenge
- Expected Output
FRQ 2: Sign Class
This question involves methods that distribute text across lines of an electronic sign. The Sign class contains:
- A constructor with two parameters: a
Stringmessage and anintwidth numberOfLines()- returns the number of lines needed to display the messagegetLines()- returns the message broken into lines separated by semicolons
Key Rules:
- The message is split among lines without regard to spaces or punctuation
- Only the last line may contain fewer characters than the width
getLines()returnsnullif the message is empty
Code Runner Challenge
FRQ 2 - Sign Class Challenge
View IPYNB Source
// CODE_RUNNER: FRQ 2 - Sign Class Challenge
class Sign {
private String message;
private int width;
// TODO: Write the constructor
public Sign(String message, int width) {
// Your code here
}
// TODO: Returns the number of lines needed
public int numberOfLines() {
// Your code here
return 0;
}
// TODO: Returns message split by semicolons, null if empty
public String getLines() {
// Your code here
return null;
}
}
class Main {
public static void main(String[] args) {
Sign sign1 = new Sign("ABC222DE", 3);
System.out.println("sign1 numberOfLines(): " + sign1.numberOfLines()); // Expected: 3
System.out.println("sign1 getLines(): " + sign1.getLines()); // Expected: ABC;222;DE
Sign sign2 = new Sign("ABCD", 10);
System.out.println("sign2 numberOfLines(): " + sign2.numberOfLines()); // Expected: 1
System.out.println("sign2 getLines(): " + sign2.getLines()); // Expected: ABCD
Sign sign3 = new Sign("ABCDEF", 6);
System.out.println("sign3 numberOfLines(): " + sign3.numberOfLines()); // Expected: 1
System.out.println("sign3 getLines(): " + sign3.getLines()); // Expected: ABCDEF
Sign sign4 = new Sign("", 4);
System.out.println("sign4 numberOfLines(): " + sign4.numberOfLines()); // Expected: 0
System.out.println("sign4 getLines(): " + sign4.getLines()); // Expected: null
Sign sign5 = new Sign("AB_CD_EF", 2);
System.out.println("sign5 numberOfLines(): " + sign5.numberOfLines()); // Expected: 4
System.out.println("sign5 getLines(): " + sign5.getLines()); // Expected: AB;_C;D_;EF
Sign sign6 = new Sign("Everything on sale, please come in", 15);
System.out.println("sign6 numberOfLines(): " + sign6.numberOfLines()); // Expected: 3
System.out.println("sign6 getLines(): " + sign6.getLines()); // Expected: Everything on s;ale, please com;e in
}
}
Main.main(null);
Lines: 1
Characters: 0
Output
Click "Run" in code control panel to see output ...
Expected Output
If the implementation is correct, running the code should produce:
sign1 numberOfLines(): 3
sign1 getLines(): ABC222DE
sign2 numberOfLines(): 1
sign2 getLines(): ABCD
sign3 numberOfLines(): 1
sign3 getLines(): ABCDEF
sign4 numberOfLines(): 0
sign4 getLines(): null
sign5 numberOfLines(): 4
sign5 getLines(): AB_CD_EF
sign6 numberOfLines(): 3
sign6 getLines(): Everything on sale, please come in