小编yak*_*yak的帖子

有没有办法让Java中的普通数组不可变?

用Google搜索,找到了大量的代码.但是他们中的任何一个都给了我想要的东西.我想制作一个普通的数组Immutable.我试过这个:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class test {

    public static void main(String[] args) {

        final Integer array[];

        List<Integer> temp = new ArrayList<Integer>();
        temp.add(Integer.valueOf(0));
        temp.add(Integer.valueOf(2));
        temp.add(Integer.valueOf(3));
        temp.add(Integer.valueOf(4));
        List<Integer> immutable = Collections.unmodifiableList(temp);

        array = immutable.toArray(new Integer[immutable.size()]);

        for(int i=0; i<array.length; i++)
            System.out.println(array[i]);

        array[0] = 5;

        for(int i=0; i<array.length; i++)
            System.out.println(array[i]);

    }
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我可以将5分配给数组[0] ...有没有办法让这个数组不可变?

java arrays

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

通过Python中的套接字(仅限)发送图像,无法打开图像

我想使用Python中的ONLY套接字将图像从客户端上传到服务器.我设计了一个非常简单的协议流程,我想这样做:

CLIENT                                       SERVER
               SIZE 512 (send image size)
         ---------------------------------->
                      GOT SIZE   
         <---------------------------------- 
                 send image itself
         ---------------------------------->
                      GOT IMAGE
         <----------------------------------
                      BYE BYE 
         ---------------------------------->
                server closes socket
Run Code Online (Sandbox Code Playgroud)

这是我的客户端代码:

#!/usr/bin/env python

import random
import socket, select
from time import gmtime, strftime
from random import randint

image = "tux.png"

HOST = '127.0.0.1'
PORT = 6666

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = (HOST, PORT)
sock.connect(server_address)

try:

    # open image
    myfile = open(image, 'rb')
    bytes = myfile.read()
    size = len(bytes)

    # send image size to server …
Run Code Online (Sandbox Code Playgroud)

python sockets image

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

如何在给定目录中找到重复的文件名(递归)?BASH

我需要在给定的目录树中找到每个重复的文件名.我不知道,dir tree用户将作为脚本参数给出什么,所以我不知道目录层次结构.我试过这个:

#!/bin/sh
find -type f | while IFS= read vo
do
echo `basename "$vo"`
done
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的.它只找到一个重复,然后结束,即使,如果有更多的重复文件名,它也 - 它不打印整个路径(只打印文件名)和重复计数.我想做一些类似于这个命令的事情:

find DIRNAME | tr '[A-Z]' '[a-z]' | sort | uniq -c | grep -v " 1 " 
Run Code Online (Sandbox Code Playgroud)

但它对我有用,不知道为什么.即使我有重复项,也不会打印任何内容.我使用的是Xubuntu 12.04.

bash filenames duplicates

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

从information_schema,MySQL获取所有表

我只是不明白一件事.当我输入:

SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';

我明白了:

+----------------------------------------------+
| table_name                                   |
+----------------------------------------------+
| columns_priv                                 |
| db                                           |
| event                                        |
| func                                         |
| general_log                                  |
| help_category                                |
| help_keyword                                 |
| help_relation                                |
| help_topic                                   |
| host                                         |
| ndb_binlog_index                             |
| plugin                                       |
| proc                                         |
| procs_priv                                   |
| proxies_priv                                 |
| servers                                      |
| slow_log                                     |
| tables_priv                                  |
| time_zone                                    |
| time_zone_leap_second                        |
| time_zone_name                               |
| …
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

如何从BeautifulSoup中的表格td获取价值?

我有一个页面,其源代码中包含一些表:

<table width='100%' cellspacing='0' cellpadding='2' class='an'>
    <tr>
        <td width='35%' align='right'>XXX :</td>
        <td><b>20</b></td>
    </tr>
    <tr><
        td align='right'>XXX :</td>
        <td><b>XXX</b></td>
    </tr>
    <tr>
        <td align='right'>XX :</td>
        <td><b>XXX</b></td>
    </tr>
    <tr>
        <td align='right'>XXX :</td>
        <td><b>XXX</b></td>
    </tr>
    <tr>
        <td align='right'>XXX :</td>
        <td><b>XXX</b></td>
    </tr>
    <tr>
        <td align='right'>XXX :</td>
        <td><b>XXX</b></td>
    </tr>
    <tr>
        <td align='right'>XXX :</td>
        <td><b>XXX</b></td>
    </tr>
</table>

<table width='361' cellspacing='0' cellpadding='2' class='an'>
    <tr>
        <td width='35%' align='right'>XXX :</td>
        <td><b>XXX</b></td>
    </tr>
    <tr>
        <td align='right'>XXX :</td>
        <td><b>XXX</b></td>
    </tr>
    <tr>
        <td align='right'>XXX :</td>
        <td><b>XXX</b></td>
    </tr>
    <tr>
        <td align='right'>XXX :</td>
        <td><b>XXX</b></td>
    </tr> …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup

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

机械化和Python,单击href ="javascript:void(0);" 链接并获得回复

我需要从页面中删除一些数据,我填写表单(已经使用mechanize进行了此操作).问题是,页面在很多页面上返回数据,而且从这些页面获取数据我遇到了麻烦.

从第一个结果页面获取它们没有问题,因为它在搜索后已经显示 - 我只需提交表单并获得响应.

我分析了结果页面的源代码,似乎它使用了Java Script,RichFaces(JSF的一些lib和ajax,但我可能是错的,因为我不是网络专家).

但是,我设法弄清楚如何到达剩余的结果页面.我需要点击此表单中的链接(href="javascript:void(0);"以下完整代码):

<td class="pageNumber"><span class="rf-ds " id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233"><span class="rf-ds-nmb-btn rf-ds-act " id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_1">1</span><a class="rf-ds-nmb-btn " href="javascript:void(0);" id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_2">2</a><a class="rf-ds-nmb-btn " href="javascript:void(0);" id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_3">3</a><a class="rf-ds-nmb-btn " href="javascript:void(0);" id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_4">4</a><a class="rf-ds-nmb-btn " href="javascript:void(0);" id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_5">5</a><a class="rf-ds-nmb-btn " href="javascript:void(0);" id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_6">6</a><a class="rf-ds-nmb-btn " href="javascript:void(0);" id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_7">7</a><a class="rf-ds-nmb-btn " href="javascript:void(0);" id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_8">8</a><a class="rf-ds-nmb-btn " href="javascript:void(0);" id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_9">9</a><a class="rf-ds-nmb-btn " href="javascript:void(0);" id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_10">10</a><a class="rf-ds-btn rf-ds-btn-next" href="javascript:void(0);" id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_next">»</a><a class="rf-ds-btn rf-ds-btn-last" href="javascript:void(0);" id="SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_l">»»»»</a>

<script type="text/javascript">new RichFaces.ui.DataScroller("SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233",function(event,element,data){RichFaces.ajax("SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233",event,{"parameters":{"SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233:page":data.page} ,"incId":"1"} )},{"digitals":{"SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_9":"9","SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_8":"8","SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_7":"7","SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_6":"6","SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_5":"5","SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_4":"4","SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_3":"3","SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_1":"1","SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_10":"10","SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_2":"2"} ,"buttons":{"right":{"SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_next":"next","SomeSimpleForm:SomeSimpleTable:j_idt211:j_idt233_ds_l":"last"} } ,"currentPage":1} )</script></span></td>
<td class="pageExport"><script type="text/javascript" src="/opi/javax.faces.resource/download.js?ln=js/component&amp;b="></script><script type="text/javascript">
Run Code Online (Sandbox Code Playgroud)

所以我想问一下是否有办法点击所有链接并使用mechanize获取所有页面(注意,»符号之后有更多页面可用)?我用网络知识询问总傻瓜的答案:)

javascript python ajax mechanize mechanize-python

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

通过Python socket/WebSocket Client发送/接收WebSocket消息

我写了一个简单的WebSocket客户端.我使用了我在SO上找到的代码,这里:我如何在服务器端发送和接收WebSocket消息?.

我正在使用Python 2.7,我的服务器echo.websocket.org在80TCP端口上.基本上,我认为接收消息时遇到问题.(或者也许发送错了?)

至少我确信握手没问题,因为我收到了很好的握手响应:

HTTP/1.1 101 Web Socket Protocol Handshake
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type
Access-Control-Allow-Headers: authorization
Access-Control-Allow-Headers: x-websocket-extensions
Access-Control-Allow-Headers: x-websocket-version
Access-Control-Allow-Headers: x-websocket-protocol
Access-Control-Allow-Origin: http://example.com
Connection: Upgrade
Date: Tue, 02 May 2017 21:54:31 GMT
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Server: Kaazing Gateway
Upgrade: websocket
Run Code Online (Sandbox Code Playgroud)

我的代码:

#!/usr/bin/env python
import socket

def encode_text_msg_websocket(data):
    bytesFormatted = []
    bytesFormatted.append(129)

    bytesRaw = data.encode()
    bytesLength = len(bytesRaw)

    if bytesLength <= 125:
        bytesFormatted.append(bytesLength)
    elif 126 <= bytesLength <= 65535:
        bytesFormatted.append(126)
        bytesFormatted.append((bytesLength >> 8) …
Run Code Online (Sandbox Code Playgroud)

python sockets decode protocols websocket

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

Qt GUI数学应用程序在计算时挂起了GUI

我的应用程序有一个简单的GUI =我必须为我的数学函数设置一些输入参数,然后单击"计算"按钮,然后启动函数.数学函数是用纯C编写的,所以没有对象,只有函数.

它看起来像这样:

#include "mymath.h"

class myMath : public QMainWindow
{
    Q_OBJECT

    // ...
    void compute();
};

void myMath::compute()
{
   //get parameters from gui
   call_C_fun();
   // save results to GUI
}
Run Code Online (Sandbox Code Playgroud)

这个代码的主要问题是,当我点击'compute'(它做了太多的计算,它需要大约5分钟左右)时它会挂掉我的GUI,所以我什么也做不了(我甚至看不到我的GUI,窗口在计算运行的时候被"冻结".在函数完成后,它在QLabel上打印出结果,GUI又一次"活着".我怎么能解决这个问题?我不想要我的当计算需要时间时,GUI会被"冻结".任何想法?我想过QThread- 但我在线程中有点新东西,所以请为新手提供简单易懂的答案:)

c++ user-interface qt

5
推荐指数
2
解决办法
1805
查看次数

GNUplot - 绘图数据文件(简单的 X 和 Y 列) - 在图形上设置合适的颜色和比例

我有一个包含两列的简单文件:

1 0.005467
2 0.005333
3 0.005467
4 0.005467
5 0.005600
6 0.005600
7 0.005467
8 0.005467
Run Code Online (Sandbox Code Playgroud)

在第一列我有 x 轴值,而在第二列我有 y 轴值。我想绘制此数据的图形。我为此编写了一个 gnuplot 脚本:

#!/usr/bin/gnuplot

set xlabel "test"
set ylabel "value"
set grid ytics lt 0 lw 1 lc rgb "#bbbbbb"
set grid xtics lt 0 lw 1 lc rgb "#bbbbbb"
set autoscale
set terminal postscript portrait enhanced mono dashed lw 1 'Helvetica' 14
set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"
set output 'out.eps' …
Run Code Online (Sandbox Code Playgroud)

gnuplot

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

将字符串附加到bytearray

我有一个字节数组arr和一个十六进制数a:

arr = bytearray()
a = 'FE'
Run Code Online (Sandbox Code Playgroud)

如何将此数字附加到bytearray以具有相同的值,FE?我尝试过print(int(a, 16)),但似乎是一个坏主意(它打印254而不是FE).

python python-bytearray

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