我想根据用户列表的状态对用户列表进行排序,但订单必须基于我设置的顺序.
我想设置列表的顺序,
订单应为1,0,5.我们还应该记住订购用户名.
List<User> users = new ArrayList();
users.add(new User("A", 1));
users.add(new User("B", 5));
users.add(new User("C", 0));
users.add(new User("D", 1));
users.add(new User("E", 5));
users.add(new User("F", 0));
Run Code Online (Sandbox Code Playgroud)
这是用户类
public class User {
private String username;
private Integer status;
}
Run Code Online (Sandbox Code Playgroud)
它看起来应该是这样的
[
{
"username": "A",
"status": 1
},
{
"username": "D",
"status": 1
},
{
"username": "C",
"status": 0
},
{
"username": "F",
"status": 0
},
{
"username": "B",
"status": 5
},
{
"username": "E",
"status": 5
}
]
Run Code Online (Sandbox Code Playgroud)
我不确定是否可以使用 …
我有一个名为messages的表,它的列是
id, sender_id, message, receiver_id, created_at, updated_at
Run Code Online (Sandbox Code Playgroud)
而另一个表称为用户,它的列是
id, firstname, lastname, email, password, created_at,updated_at
Run Code Online (Sandbox Code Playgroud)
我想获取所有用户的所有消息,因此我使用users.id加入messages.sender_id和messages.receiver_id
但是我不知道如何在加入laravel时使用"OR"运算符这是我的原始查询,它给了我所需的输出.
SELECT messages.*,users.* FROM messages JOIN users ON users.id = messages.sender_id
OR users.id = messages.receiver_id GROUP BY messages.id
Run Code Online (Sandbox Code Playgroud)
这是我试过的laravel查询
$get_messages = DB::table('messages')
->where('messages.sender_id',$user_id)
->leftjoin('users', function($join){
$join->on('users.id','=','messages.sender_id'); // i want to join the users table with either of these columns
$join->on('users.id','=','messages.receiver_id');
})
->orwhere('messages.sender_id',$partner_id)
->where('messages.receiver_id',$user_id)
->orwhere('messages.receiver_id',$partner_id)
->groupby('messages.id')
->get();
print_r($get_messages);
Run Code Online (Sandbox Code Playgroud) 我想屏蔽maskEmail函数中传递的电子邮件。我目前面临一个问题,其中当我替换模式的第 2 组和第 4 组时,星号*不重复。
这是我的代码:
fun maskEmail(email: String): String {
return email.replace(Regex("(\\w)(\\w*)\\.(\\w)(\\w*)(@.*\\..*)$"), "$1*.$3*$5")
}
Run Code Online (Sandbox Code Playgroud)
这是输入:
tom.cat@email.com
cutie.pie@email.com
captain.america@email.com
Run Code Online (Sandbox Code Playgroud)
这是该代码的当前输出:
t*.c*@email.com
c*.p*@email.com
c*.a*@email.com
Run Code Online (Sandbox Code Playgroud)
预期输出:
t**.c**@email.com
c****.p**@email.com
c******.a******@email.com
Run Code Online (Sandbox Code Playgroud)
编辑:我知道这可以用 for 循环轻松完成,但我需要在正则表达式中完成。先感谢您。
我正在制作一个处理程序,其中当用户尝试访问不存在的网址时,我应该能够将用户重定向到登录页面或自定义错误页面,我正在使用异常处理程序来捕获错误,但问题是它不会转到处理程序,而是只给我一个白色标签错误页面。
这是代码:
@ExceptionHandler(value = ResourceNotFoundException.class)
public String exception(ResourceNotFoundException e, HttpServletRequest request, RedirectAttributes redirectAttributes) {
long now = new Date().getTime();
long lastAccessed = request.getSession().getLastAccessedTime();
boolean isNotLoggedIn = (now - lastAccessed) <= 0L;
if (isNotLoggedIn) {
return "forward:/login";
}
return "forward:/access-forbidden?errorMessage=Page Not found.";
}
Run Code Online (Sandbox Code Playgroud) 我想将一个16位数字的前12位数字转换为星号.
最后4位数应该是可见的.
输入示例:
String test = "test/1234567890121123/121/test";
String test2 = "hey: 1234567890123456";
Run Code Online (Sandbox Code Playgroud)
预期产量:
String test = "test/************1123/121/test";
String test2 = "hey: ************3456";
Run Code Online (Sandbox Code Playgroud)
注意:输入是动态的
java ×3
regex ×2
comparator ×1
css ×1
java-8 ×1
kotlin ×1
laravel ×1
laravel-5 ×1
mysql ×1
php ×1
sorting ×1
spring ×1
spring-boot ×1
spring-mvc ×1