android - 如何删除特定符号之前的字符
问题描述
我有以下代码在特定符号后拆分或删除字符:
评级 = rating.split("\s*=\s*")[0];
我也想知道是否有办法为每个医疗诊所添加评级数字?我有一个名为 Rating 的孩子和另一个名为 rating by username 的孩子...我正在尝试调用 getUID,我假设这将返回所有提交评分的用户,并且通过使用 split 方法,我可以加分吗?我也可以先显示评分最高的医疗诊所吗?我确实尝试使用 orderbychild("Rating") 但它首先显示评分最低的医疗诊所。我想,我还没有添加评分...
DatabaseReference reference = FirebaseDatabase.getInstance().getReference(); // getReference() is the root
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
list.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
String rating = email.split("\\s*@\\s*")[0];
System.out.println(rating);
int rate = (int) snapshot.child("Rating by" + rating).getValue();
// rating.substring(rating.indexOf("=")+1);
// String rating = rating.Substring(rating.IndexOf('.') + 1);
// rating = rating.replaceAll("[^\\d.]", "");
Information info = snapshot.getValue(Information.class);
assert info != null;
String txt = "Medical Clinic" + info.getName() + "Rating" + rate;
list.add(txt);
// System.out.println(rating);
// list.add(snapshot.getValue().toString());
}
adapter.notifyDataSetChanged();
}
我还需要找到一种方法来删除 = 符号之前的所有字符....
解决方案
要获得评分最高的节点,您需要使用:
reference.orderByChild("Rating").limitToLast(10).addValueEventListener(new ValueEventListener() {
这将为您提供按升序排列的前 10 个评级节点。
没有 API 可以按降序获取它们,因此您要么必须在应用程序代码中反转结果,要么在数据库中存储一个反转的值以对其进行排序。有关这方面的更多信息,请参阅:Android 中的 Firebase 数据描述排序