1

入力文字列を受け取り、指定された位置に文字を追加するメソッドを作成しようとしています。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                                   " 

何か案は?

4

2 に答える 2

1

replace操作を実行する部分文字列だけでなく、文字列全体を呼び出しています。すなわちinputString.replace(...)

文字列を分割し、サブ文字列を呼び出しreplaceてから、文字列を連結して元に戻します。

于 2012-08-22T00:03:30.820 に答える
0

ここに解決策があります:

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;
}
于 2012-08-22T00:16:35.090 に答える