小编Zon*_*ong的帖子

查找最接近的数字为0

我正在尝试用Java解决程序问题.

要求:需要在Array中找到最接近零的值.在数组中,如果值类似于1和-1,则最接近的值应为正值.

public class CloseToZero {    
    public static void main(String[] args) {    
        int[] data = {2,3,-2};    
        int curr = 0;    
        int near = data[0];     
        // find the element nearest to zero    
        for ( int i=0; i < data.length; i++ ){    
            curr = data[i] * data[i];     
            if ( curr <= (near * near) )  {     
                near = data[i]; 
            }     
        }    
        System.out.println( near );    
    }    
}
Run Code Online (Sandbox Code Playgroud)

java

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

使 fgets() 忽略新行

以下代码应从用户获取字符串(包含存储中的项目数据)。

我在使程序迭代到新行时遇到问题。当我按下“输入”时它会中止,但我需要它只将下一行作为输入。代码:

for (i; i < STORE_SIZE; i++) {
    fgets(seq, MAX_STRING_LEN, stdin);
    if (strcmp(seq, "stop")) {
        break;
    }
    else {
        init(seq, ptr);
        *(storage + i) = ptr;
    }
}
Run Code Online (Sandbox Code Playgroud)

当程序在下一行中得到字符串“stop”时,程序应该中止,而不是按下回车键。

c

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

函数的变量范围

我执行这样的函数:

var a = 123;
function f() { 
  alert(a);
  var a = 9;
} 
f();
Run Code Online (Sandbox Code Playgroud)

结果是undefined,为什么会这样?为什么不123呢?

javascript scope function

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

使用标签和属性创建独特的

我正在使用Neo4j 2.0.0-M06.只是学习Cypher并阅读文档.在我看来这个查询会起作用,但我应该很幸运...

我正在将推文导入mysql数据库,并从那里将它们导入neo4j.如果Neo4j数据库中已存在推文,则应进行更新.

我的查询:

MATCH (y:Tweet:Socialmedia) WHERE
HAS (y.tweet_id) AND y.tweet_id = '123'
CREATE UNIQUE (n:Tweet:Socialmedia {
 body : 'This is a tweet', tweet_id : '123', tweet_userid : '321', tweet_username : 'example'
} )
Run Code Online (Sandbox Code Playgroud)

Neo4j说: This pattern is not supported for CREATE UNIQUE

数据库在具有匹配标签的节点上当前是空的,因此在Neo4j数据库中没有推文.

什么是正确的查询?

neo4j cypher

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

二进制搜索不适用于双打

这个程序适用于整数,但不是双打.没有错误,但程序返回-1.对不起,如果这是一个愚蠢的问题,但我是编程的新手.

public class binarySearchProject
{
  public static int binarySearch(double[] arr, double x, int high, int low)
  {
    int mid=(high+low)/2;
    if(high==low || low==mid || high==mid)
    {
      return -1;
    }
    if(arr[mid]>x)
    {
      return binarySearch(arr, x, high, mid);
    }
    else if(arr[mid]<x)
    {
      return binarySearch(arr, x, mid, low);
    }
    else if(arr[mid]==x)
    {
      return mid;
    }
    return -1;
  }
  public static void main(String args[])
  {
    double i = 45.3;
    double[] a = {-3, 10, 5, 24, 45.3, 10.5};
    int size = a.length;
    System.out.println(binarySearch(a, i, size, …
Run Code Online (Sandbox Code Playgroud)

java binary search

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

通过套接字发送图像

我最近正在尝试创建一个程序,就像teamviewer一样。进展还算顺利,但我目前面临一个问题。

我试图让我的程序通过套接字发送图像。当我运行这段代码时,它从不输出“应该发送图像!”,所以我认为问题出在 ImageIO.write 行中。

BufferedImage screencapture = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
try {
    ImageIO.write(screencapture, "jpg", socket.getOutputStream());
    System.out.println("Image should be sent!");
} catch (IOException ex){
    ex.printStackTrace();
} finally {
    if ( socket != null ){
        try { socket.close(); } catch (IOException ex){}
    }
    System.out.println("Image sent and socket closed!");
}
Run Code Online (Sandbox Code Playgroud)

另一边还有一个客户端,消耗上面代码发送的数据。执行此操作的代码是:

BufferedImage image = ImageIO.read(socket.getInputStream());
JLabel label = new JLabel(new ImageIcon(image));
f.getContentPane().add(label);
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,这段代码有什么问题,我该如何使它工作?

java sockets

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

安全地保存常数值

我正在开发与安全数据通信相关的 Android 应用程序。我在我的应用程序中使用了一些常量值,并将它们保存在 constant.java 类中。我不希望这些值被逆向工程,但即使我使用 ProGuard for Android,对于专家来说,逆向代码也很容易。这些常量是非常安全的。我可以使用属性文件或 res 文件夹中的任何文件,但这种方法根本不安全。

谁能告诉我如何进行?是否有任何文件格式可以保存我的常量或防止属性文件被逆向工程。是否有任何选项,例如将其保存为 .py python 文件格式并从 Android 代码中读取它?

android reverse-engineering properties proguard

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

使用static_cast(或reinterpret_cast)进行无效向下转换的安全性,无需添加成员即可继承

我想知道标准对以下代码的安全性的说法:

class A { int v; };
class B: public A { }; // no added data member

A a;
B& b = static_cast<B&>(a);
Run Code Online (Sandbox Code Playgroud)

显然的运行时类型aA,不是B,所以剧组是不是真的类型安全的.但是,由于没有添加任何成员而且没有任何内容是虚拟的,IMO的类的内存布局应该是相同的,这应该可行(可能写入更好reinterpret_cast以表明这种行为?).我的猜测是这是UB,但适用于任何编译器.或者这实际上定义得很好?还是比较危险?

此外,如果B有一些额外的非虚拟成员方法会有什么变化吗?再一次,直觉上我会说不,但我想知道标准对此有何看法.

c++ casting downcast static-cast reinterpret-cast

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

获取枚举实例的名称

说我有这个枚举:

public enum MyEnum{
    ValueOne = 1,
    ValueTwo = 2,
    ValueThree = 3
}
Run Code Online (Sandbox Code Playgroud)

然后这个字段/变量:

public MyEnum myEnumInstance = MyEnum.ValueTwo;
Run Code Online (Sandbox Code Playgroud)

我需要得到namemyEnumInstance通过反射从另一个类

我试过:

myClassInstance.GetType().GetField("myEnumInstance").GetValue(myClassInstance)
Run Code Online (Sandbox Code Playgroud)

ValueOne无论myEnumInstance设置为什么,它始终返回。

如何通过反射获取枚举字段的字符串值/名称?

c# reflection enums

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

并发文件系统

我需要创建一个文件系统管理器(或多或少),它可以读取或写入数据到文件。

我的问题是如何处理并发?

我可以做类似的事情

public class FileSystemManager {

    private ReadWriteLock readWriteLock = new ReentrantReadWriteLock();

    public byte[] read(String path) {
        readWriteLock.readLock().lock();
        try {
            ...
        } finally {
            readWriteLock.readLock().unlock();
        }
    }
    public void write(String path, byte[] data) {
        readWriteLock.writeLock().lock();
        try {
            ...
        } finally {
            readWriteLock.writeLock().unlock();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这意味着对写入(例如)的所有访问都将被锁定,即使第一次调用的目标是 /tmp/file1.txt 而第二次调用的目标是 /tmp/file2.txt。

任何想法如何解决这个问题?

java filesystems concurrency

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