如何删除 java 中字符串缓冲区的最后一个字符?
How to remove last character of string buffer in java?
我有以下代码,我想从 StringBuffer
中删除最后附加的字符:
StringBuffer Att = new StringBuffer();
BigDecimal qty = m_line.getMovementQty();
int MMqty = qty.intValue();
for (int i = 0; i < MMqty;i++){
Att.append(m_masi.getSerNo(true)).append(",");
}
String Ser= Att.toString();
fieldSerNo.setText(Ser);
我想在最后一个值出现后删除“,”(完成 For 循环后)
首先不要附加它:
for (int i = 0; i < MMqty;i++){
Att.append(m_masi.getSerNo(true));
if (i + 1 < MMqty) Att.append(",");
}
此外,请注意,如果您不需要同步(在此代码中似乎没有同步),最好使用 StringBuilder
.
试试这个代码:
已将下行添加到您现有的代码中。
Ser = Ser.substring(0, Ser.length()-1);
完整代码:
StringBuffer Att = new StringBuffer();
BigDecimal qty = m_line.getMovementQty();
int MMqty = qty.intValue();
for(int i =0; i< MMqty;i++){
Att.append(m_masi.getSerNo(true)).append(",");
}
String Ser= Att.toString();
Ser = Ser.substring(0, Ser.length()-1);
fieldSerNo.setText(Ser);
对于您的具体用例,请考虑@AndyTurner 的回答。在大多数情况下,不处理稍后将被丢弃的数据是最有效的解决方案。
否则,要回答你的问题,
How to remove last character of string buffer in java?
您可以简单地调整 StringBuffer
的长度 StringBuffer.setLength()
:
...
StringBuffer buf = new StringBuffer();
buf.append("Hello World");
buf.setLength(buf.length() - 1);
System.err.println(buf);
...
输出:
Hello Worl
请注意,这要求 StringBuffer
中至少有一个字符可用,否则您将得到 StringIndexOutOfBoundsException
.
如果给定长度小于当前长度,setLength
方法实质上将 AbstractStringBuilder
class 的 count
成员设置为给定的新长度。在这种情况下,不会执行其他操作,如字符数组复制。
请检查这个。
为什么要删除最后附加的字符 ,
那么不要附加?如果您没有进一步使用该字符。
for (int i = 0; i < MMqty-1;i++){
Att.append(m_masi.getSerNo(true)).append(",");
}
我有以下代码,我想从 StringBuffer
中删除最后附加的字符:
StringBuffer Att = new StringBuffer();
BigDecimal qty = m_line.getMovementQty();
int MMqty = qty.intValue();
for (int i = 0; i < MMqty;i++){
Att.append(m_masi.getSerNo(true)).append(",");
}
String Ser= Att.toString();
fieldSerNo.setText(Ser);
我想在最后一个值出现后删除“,”(完成 For 循环后)
首先不要附加它:
for (int i = 0; i < MMqty;i++){
Att.append(m_masi.getSerNo(true));
if (i + 1 < MMqty) Att.append(",");
}
此外,请注意,如果您不需要同步(在此代码中似乎没有同步),最好使用 StringBuilder
.
试试这个代码:
已将下行添加到您现有的代码中。
Ser = Ser.substring(0, Ser.length()-1);
完整代码:
StringBuffer Att = new StringBuffer();
BigDecimal qty = m_line.getMovementQty();
int MMqty = qty.intValue();
for(int i =0; i< MMqty;i++){
Att.append(m_masi.getSerNo(true)).append(",");
}
String Ser= Att.toString();
Ser = Ser.substring(0, Ser.length()-1);
fieldSerNo.setText(Ser);
对于您的具体用例,请考虑@AndyTurner 的回答。在大多数情况下,不处理稍后将被丢弃的数据是最有效的解决方案。
否则,要回答你的问题,
How to remove last character of string buffer in java?
您可以简单地调整 StringBuffer
的长度 StringBuffer.setLength()
:
...
StringBuffer buf = new StringBuffer();
buf.append("Hello World");
buf.setLength(buf.length() - 1);
System.err.println(buf);
...
输出:
Hello Worl
请注意,这要求 StringBuffer
中至少有一个字符可用,否则您将得到 StringIndexOutOfBoundsException
.
如果给定长度小于当前长度,setLength
方法实质上将 AbstractStringBuilder
class 的 count
成员设置为给定的新长度。在这种情况下,不会执行其他操作,如字符数组复制。
请检查这个。
为什么要删除最后附加的字符 ,
那么不要附加?如果您没有进一步使用该字符。
for (int i = 0; i < MMqty-1;i++){
Att.append(m_masi.getSerNo(true)).append(",");
}