Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方法没有返回所需的值_Java - Fatal编程技术网

Java 方法没有返回所需的值

Java 方法没有返回所需的值,java,Java,我正在尝试编写一个方法,该方法接受一个输入字符串,并在指定位置向其添加一个字符。inputString长42个字符,分为7个“列”,当用户给出输入时,该方法应采用该输入,并在适当位置放置一个“X”。代码如下: private String enterToken(String tokenSymbol, String inputString, int column){ String columnEdit = inputString.substring(column*6-6,column*6);

我正在尝试编写一个方法,该方法接受一个输入字符串,并在指定位置向其添加一个字符。inputString长42个字符,分为7个“列”,当用户给出输入时,该方法应采用该输入,并在适当位置放置一个“X”。代码如下:

private String enterToken(String tokenSymbol, String inputString, int column){
   String columnEdit = inputString.substring(column*6-6,column*6); 

   String columnEdit1 = columnEdit.trim();
   String columnEdit2 = columnEdit1+tokenSymbol+"                 ";
   String columnEdit3 = columnEdit2.substring(0,6);
   String start = inputString.replace(inputString.substring(column*6-6,column*6),columnEdit3);
   System.out.println(start);
   return start;

 }
例如,当我给它42个空格的输入,给它第2列时,它给我的输出是

"X     X     X     X     X     X     X     "
而它应该给我一个

"      X                                   " 

有什么想法吗?

您正在对整个字符串调用
replace
,而不仅仅是要对其执行操作的子字符串。i、 e.
inputString.replace(…)


您需要拆分字符串,在子字符串上调用
replace
,然后将字符串连接在一起返回。

您在整个字符串上调用
replace
,而不仅仅是要对其执行操作的子字符串。i、 e.
inputString.replace(…)

您需要拆分字符串,在子字符串上调用
replace
,然后将字符串重新连接在一起以返回。

以下是一个解决方案:

private String enterToken(String tokenSymbol, String inputString, int column) {
    int colWidth = inputString.length() / 7;
    int tokenPos = (column-1) * colWidth;
    String inputStart = inputString.substring(0, tokenPos);
    String inputEnd = inputString.substring(tokenPos+1);
    return inputStart + tokenSymbol+inputEnd;
}
以下是一个解决方案:

private String enterToken(String tokenSymbol, String inputString, int column) {
    int colWidth = inputString.length() / 7;
    int tokenPos = (column-1) * colWidth;
    String inputStart = inputString.substring(0, tokenPos);
    String inputEnd = inputString.substring(tokenPos+1);
    return inputStart + tokenSymbol+inputEnd;
}

另外,你能解释一下输出是如何从输入中计算出来的吗?@Code Guru看起来很独立,并且对我解释得很好。@b战神,只是它不能按原样运行。我想我可以自己编写main方法,因为我仅仅通过查看代码并没有发现代码的问题。另外,您能解释一下如何从输入计算输出吗?@code Guru看起来非常独立,并且向我解释得很好。@b除了不能按原样运行之外,其他都是。我想我可以自己编写main方法,因为我仅仅通过查看代码并没有发现代码的问题。