我正在寻找一种如何轻松地将[HttpPut]
public HttpResponseMessage Update(EmployeeViewModel model)
{
if(!empRepository.VerifyEmployeeId(model.Id))
return new HttpResponseMessage(HttpStatusCode.BadRequest);
empRepository.Update(model);
return new HttpResponseMessage(HttpStatusCode.OK);
}
[HttpGet]
public HttpResponseMessage VerifyEmployee(string id)
{
var isValid = empRepository.VerifyEmployeeId(string id);
return isValid ? new HttpResponseMessage(HttpStatusCode.OK) : new HttpResponseMessage(HttpStatusCode.BadRequest);
}
转换为二进制字符串的有效方法。让我们说它通常的长度将是数千位。
例如,让我们拥有:
BitSet
这是理想的结果:
BitSet bits = new BitSet(8);
bits.set(1);
bits.set(3);
我总体上有一些想法(溪流等),但可能会有一些明显缺乏的标准方法。
答案 0 :(得分:2)
所以这是我迄今为止尝试过的最有效的方式:
private static class FixedSizeBitSet extends BitSet {
private final int nbits;
public FixedSizeBitSet(final int nbits) {
super(nbits);
this.nbits = nbits;
}
@Override
public String toString() {
final StringBuilder buffer = new StringBuilder(nbits);
IntStream.range(0, nbits).mapToObj(i -> get(i) ? '1' : '0').forEach(buffer::append);
return buffer.toString();
}
}
或使用更多流的其他方式:
@Override
public String toString() {
return IntStream
.range(0, nbits)
.mapToObj(i -> get(i) ? '1' : '0')
.collect(
() -> new StringBuilder(nbits),
(buffer, characterToAdd) -> buffer.append(characterToAdd),
StringBuilder::append
)
.toString();
}
答案 1 :(得分:-1)
String bitsStr = String.format(“%8s”,Integer.toBinaryString(bits.toByteArray()[0]&0xFF))。replace('','0');