Java 基于子字符串的方法运行不正常
我正在创建一组方法,根据输入字符串显示一行播放板,并将其存储在一个字符串中,稍后我将调用该字符串。我的代码如下:Java 基于子字符串的方法运行不正常,java,substring,Java,Substring,我正在创建一组方法,根据输入字符串显示一行播放板,并将其存储在一个字符串中,稍后我将调用该字符串。我的代码如下: public class A1Program { public void start() { String inputString = "XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXO"; int row = 1; int length = inputString.length();
public class A1Program {
public void start() {
String inputString = "XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXO";
int row = 1;
int length = inputString.length();
}
private String extractRow(int row, String inputString) {
String rowString1 = inputString.substring(row, row + 1);
String rowString2 = inputString.substring(row + 6, row + 7);
String rowString3 = inputString.substring(row + 12, row + 13);
String rowString4 = inputString.substring(row + 18, row + 19);
String rowString5 = inputString.substring(row + 24, row + 25);
String rowString6 = inputString.substring(row + 30, row + 31);
String rowString7 = inputString.substring(row + 36, row + 37);
return rowString1 + "|" + rowString2 + "|" + rowString3 + "|" + rowString4 + "|" + rowString5
+ "|" + rowString6 + "|" + rowString7 + "|";
}
private void displayBoard(String extractRow) {
System.out.println(extractRow + "-----------");
}
}
当我运行代码时,不会显示任何内容,但我希望它会显示一行线路板…(extractRow)。除了代码在行为上没有问题之外,一旦您实际调用它,您应该真正在循环中完成这项工作:
public static void main (String[] args) throws Exception {
displayBoard(extractRow(0, "XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXO"));
}
private static String extractRow(int row, String inputString) {
final StringBuilder b = new StringBuilder();
for (int i = 0; i < 37; i+=6) b.append(inputString.charAt(i)).append('|');
return b.toString();
}
private static void displayBoard(String extractRow) {
System.out.println(extractRow + "-----------");
}
试试这段代码,它可能会打印出一些东西
public class A1Program {
public void start() {
String inputString = "XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXO";
int row = 1;
int length = inputString.length();
//check here
displayBoard(extractRow(row, inputString));
}
private String extractRow(int row, String inputString) {
String rowString1 = inputString.substring(row, row + 1);
String rowString2 = inputString.substring(row + 6, row + 7);
String rowString3 = inputString.substring(row + 12, row + 13);
String rowString4 = inputString.substring(row + 18, row + 19);
String rowString5 = inputString.substring(row + 24, row + 25);
String rowString6 = inputString.substring(row + 30, row + 31);
String rowString7 = inputString.substring(row + 36, row + 37);
return rowString1 + "|" + rowString2 + "|" + rowString3 + "|" + rowString4 + "|" + rowString5
+ "|" + rowString6 + "|" + rowString7 + "|";
}
private void displayBoard(String extractRow) {
System.out.println(extractRow + "-----------");
}
}
您从未调用extractRow和displayBoard方法
在start方法中调用这些方法,您的代码将正常工作。公共类程序{
private String extractRow(int row, String inputString) {
String rowString1 = inputString.substring(row, row + 1);
String rowString2 = inputString.substring(row + 6, row + 7);
String rowString3 = inputString.substring(row + 12, row + 13);
String rowString4 = inputString.substring(row + 18, row + 19);
String rowString5 = inputString.substring(row + 24, row + 25);
String rowString6 = inputString.substring(row + 30, row + 31);
String rowString7 = inputString.substring(row + 36, row + 37);
return rowString1 + "|" + rowString2 + "|" + rowString3 + "|" + rowString4 + "|" + rowString5
+ "|" + rowString6 + "|" + rowString7 + "|";
}
private void displayBoard(String extractRow) {
System.out.println(extractRow + "-----------");
}
public static void main(String args[]){
A1Program a = new A1Program();
a.displayBoard(a.extractRow(0, "XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXO"));
}
}
尝试此操作,您将看到预期结果您从未调用
显示板(…)
(或提取行
)。。。。或任何其他方法。displayBoard似乎忽略了输入字符串的一半,但没有明显的原因。另外,您使用extractRow作为函数名和paramaterI将从最简单的程序开始,该程序显示一些内容并向其中添加一些内容以添加功能。编写大量代码并在以后尝试修复是非常困难的。
private String extractRow(int row, String inputString) {
String rowString1 = inputString.substring(row, row + 1);
String rowString2 = inputString.substring(row + 6, row + 7);
String rowString3 = inputString.substring(row + 12, row + 13);
String rowString4 = inputString.substring(row + 18, row + 19);
String rowString5 = inputString.substring(row + 24, row + 25);
String rowString6 = inputString.substring(row + 30, row + 31);
String rowString7 = inputString.substring(row + 36, row + 37);
return rowString1 + "|" + rowString2 + "|" + rowString3 + "|" + rowString4 + "|" + rowString5
+ "|" + rowString6 + "|" + rowString7 + "|";
}
private void displayBoard(String extractRow) {
System.out.println(extractRow + "-----------");
}
public static void main(String args[]){
A1Program a = new A1Program();
a.displayBoard(a.extractRow(0, "XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXO"));
}