小编use*_*349的帖子

如何在Java中初始化字节数组?

我有一个像这样的字节数组:(这不是实际的字节数组,我修改了它)

[69, 121, 101, 45, 62, 118, 101, 114, 196, 195, 61, 101, 98]
Run Code Online (Sandbox Code Playgroud)

我想知道如何在Java中初始化这个,以便我可以将这个字节数组转换为String?下面的行不起作用.

// this doesn't work
byte[] bytes = [69, 121, 101, 45, 62, 118, 101, 114, 196, 195, 61, 101, 98];

// now convert to string
String data = new String(bytes, StandardCharsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)

java bytearray utf-8

2
推荐指数
1
解决办法
2万
查看次数

如何从第一列中有数字的文件中获取平均、中值、平均统计数据?

我有一个文件,其中包含以秒为单位的数字,如下所示:

0.01033
0.003797
0.02648
0.007583
0.007491
0.028038
0.012794
0.00524
0.019655
0.019643
0.012969
0.011087
0.044564
Run Code Online (Sandbox Code Playgroud)

从该文件中获得“平均值”、“平均值”、“中位数”、“95%”和“99%”的最佳方法是什么?我的 linux 盒子中有这个文件,所以我需要一些 linux 命令来获取这些统计信息。

unix linux statistics ubuntu-14.04

2
推荐指数
1
解决办法
1677
查看次数

提取每个ID的主要和辅助号码并生成JSON字符串

我有两个文件,如下所示:一般来说,我将有三个以上的客户端ID,每个ID的主要和次要号码将在50-60左右.

primary.txt

{1=[0, 273, 546, 819], 2=[274, 1, 820], 3=[1016, 275, 821]}
Run Code Online (Sandbox Code Playgroud)

这意味着客户端ID 1具有主要编号[0, 273, 546, 819].与其他ID类似.

secondary.txt

{1=[342, 1102, 608, 684], 2=[115, 191, 837, 1559], 3=[1256, 116]}
Run Code Online (Sandbox Code Playgroud)

这意味着客户端ID 1具有辅助号码[342, 1102, 608, 684].与其他ID类似.

我需要读取这两个文件,为每个ID组合主要和次要号码,并为每个ID创建一个这样的JSON字符串.

对于clientid 1

{"text":"for client id one.","pri":[0, 273, 546, 819],"sec":[342, 1102, 608, 684]}
Run Code Online (Sandbox Code Playgroud)

对于客户ID 2

{"text":"for client id two.","pri":[274, 1, 820],"sec":[115, 191, 837, 1559]}
Run Code Online (Sandbox Code Playgroud)

对于客户ID 3

{"text":"for client id three.","pri":[1016, 275, 821],"sec":[1256, 116]}
Run Code Online (Sandbox Code Playgroud)

是否可以在shell脚本或Perl中执行此操作?我只是想在控制台上打印出来.以下是我尝试过但我无法弄清楚如何为每个客户端ID制作正确的JSON.

for n in {1..3}
do
  echo "$n:" …
Run Code Online (Sandbox Code Playgroud)

bash shell perl sed jq

2
推荐指数
1
解决办法
173
查看次数

如何为每个地址生成唯一编号?

我有几个像这样的地址 -

19.22.145.103
20.52.175.104
19.92.192.102
11.20.175.108
Run Code Online (Sandbox Code Playgroud)

我想为上述每个IP地址创建一个唯一的号码.我是这样做的 -

每个八位字节的总和19 + 22 + 145 + 103 = 289作为唯一编号.

但是,由于我们只是对八位字节进行求和,因此我们可能会为某些IP地址设置相同的数字.

19.22.145.103 = 289
20.52.175.104 = 351
19.22.147.101 = 289
11.20.175.108 = 314
Run Code Online (Sandbox Code Playgroud)

正如你在上面看到的那样,289我的算法用两个IP地址来对八位字节进行求和,这不是我想要的.我需要一个唯一的数字,每个IP地址都是短数据类型.

有没有更好的方法用其他公式做到这一点?我认为我的算法将保证唯一性.

java algorithm

1
推荐指数
1
解决办法
705
查看次数

从方法返回null的最佳方法?

我需要获取运行代码的机器的主机名.我有这样的方法:

private static final String getHostName() {
    try {
        return InetAddress.getLocalHost().getCanonicalHostName().toLowerCase();
    } catch (UnknownHostException ex) {
        logger.logError("error = ", ex);
    }

    // this looks pretty odd to me, are there any better options?
    // like with guava or apache commons?
    return null;
}
Run Code Online (Sandbox Code Playgroud)

这就是我使用上述getHostName()方法的方式

private static String findData() {
    String host = getHostName();
    if(host != null) {
        // do something
    }
    // otherwise do something else
}
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 返回null看起来很奇怪.我可以在这里使用Guava或Apache Commons的其他选项吗?

java apache-commons guava

1
推荐指数
1
解决办法
1121
查看次数

线程与进程在内存空间方面?

我试图了解进程和线程之间的区别,我理解了所有重要的观点,但我无法理解这一行:

典型的区别在于(同一进程的)线程在共享内存空间中运行,而进程在不同的内存空间中运行.

这是参考.

任何人都可以帮我理解记忆空间在这里意味着什么吗?上面的内容对外行人来说意味着什么才能让我理解?

java multithreading process semantics

1
推荐指数
1
解决办法
3283
查看次数

从多个线程填充地图

我有一个ConcurrentHashMap,我从多个线程填充,如下所示:

private static Map<ErrorData, Long> holder = new ConcurrentHashMap<ErrorData, Long>();

public static void addError(ErrorData error) {
    if (holder.keySet().contains(error)) {
        holder.put(error, holder.get(error) + 1);
    } else {
        holder.put(error, 1L);
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码是否存在竞争条件的可能性,它可以跳过更新?如果可以提供更好的性能,我怎么能在这里使用Guava AtomicLongMap

我在Java 7上.

java multithreading concurrenthashmap guava

1
推荐指数
1
解决办法
130
查看次数

如何检查字符串冒号和拆分以获得第一个索引(如果它有冒号)

我有一个String将以这两种形式:

  • prefix:abcdefg
  • abcdefg

我需要检查我的String是否包含:,如果它包含:然后拆分冒号并得到第一个索引,abcdefg但如果它不包含:然后使用字符串,因为它是abcdefg.所以我有下面的代码,它做同样的事情.

holder.getClientId().contains(":") ? holder.getClientId().split(":")[1] : holder.getClientId()
Run Code Online (Sandbox Code Playgroud)

使用Guava Splitter或其他任何方式有更好的方法吗?

假设holder.getClientId()不能为null或空字符串.

java guava

1
推荐指数
1
解决办法
2474
查看次数

解析映射中具有key = value对的字符串?

我下面有String,其格式key1=value1, key2=value2需要将其加载到地图中(Map<String, String>)key=value因此我需要在逗号上分割,,然后加载cossn为键0及其值。

String payload = "cossn=0, itwrqm=200006033213";
Map<String, String> holder =
          Splitter.on(",").trimResults().withKeyValueSeparator("=").split(payload);
Run Code Online (Sandbox Code Playgroud)

我在这里使用Splitter为我完成这项工作,但在某些情况下失败了。对于我的某些字符串,value具有一些带等号的字符串。所以对于下面的字符串,它对我来说是失败的:

String payload = "cossn=0, abc=hello/=world";
Run Code Online (Sandbox Code Playgroud)

如何使它适用于上述情况?对于上述情况,key将为abc,值应为hello/=world。这可能吗?

java string split splitter guava

1
推荐指数
2
解决办法
1万
查看次数

单击 js 警报框中的确定/取消按钮更新 php 中的数据库表

我有一个 php 代码(所有代码都在同一个文件mno.php 中),其中一次只允许一个用户登录。当另一个用户同时登录时,会显示一条警告消息

第一个用户登录时,它进入else块内(在 B 行)

第二个用户同时登录 ,它会进入 if 块if (mysqli_num_rows($result1) > 0)并且警报消息将显示(在 A 行) 用户用户 A 当前正在登录。你想接管吗?(带有确定和取消按钮)。

在此处输入图片说明

php文件

/* php function for alert message */
function phpAlert($msg)
{
    echo '<script type="text/javascript">confirm("' . $msg . '")</script>';
}


if (mysqli_num_rows($result1) > 0) {
    while ($row = mysqli_fetch_array($result1)) {
        if ($row['open'] == "true") {
            if (!isset($_SESSION['admin'])) {
                 $message = "user " . $row['user_name'] …
Run Code Online (Sandbox Code Playgroud)

javascript php alert

0
推荐指数
1
解决办法
354
查看次数