小编Jig*_*uff的帖子

如何环绕范围

程序中的角度以0到2pi表示.我想要一种方法来添加两个角度,如果结果高于2pi,则将它包围在2pi到0之间.或者,如果我从一个角度减去一个角度并且它低于0,它将环绕2pi.

有没有办法做到这一点?

谢谢.

c++ range

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

如何将转义字符添加到Java字符串?

如果我有一个字符串变量:

String example = "Hello, I'm here";
Run Code Online (Sandbox Code Playgroud)

我想在每个变量前面'" 变量内添加一个转义字符(即实际上不会转义字符),我该怎么做?

java string escaping

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

Java反射:如何获取不带参数的方法

我正在做一个关于Java反思的学校作业.详情如下:

编写一个控制台程序,询问用户类名,加载该类并创建它的实例.我们假设该类有一个没有任何参数的构造函数.然后,程序打印出创建的对象的公共变量的名称和值,以及未指定参数的公共方法的列表.程序应该让用户选择一个方法并在创建的对象上执行该方法.之后,程序应该再次显示公共变量及其值,并允许用户选择方法,等等.使用以下类来测试您的实现:

public class Counter {
    public int c;
    public void increment() { c++; }
    public void decrement() { c--; }
    public void reset() { c = 0; }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题与以下句子有关:"未指定参数的公共方法列表".有没有办法只列出没有参数的方法?我使用了getMethods,但最终我从Object和Class超类中获取了许多带参数的方法.

例如,我写的以下代码:

import java.lang.reflect.*;
import java.io.*;

public class Q1 {
    public static void main(String[] args) {
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("What class would you like to run? ");
            String className = reader.readLine();

            Class c = Class.forName(className);
            Object o = c.newInstance();

            for (Field f : c.getFields())
                System.out.println(f); …
Run Code Online (Sandbox Code Playgroud)

java reflection

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

根据窗口小部件大小停止调整Tkinter帧的大小

root = Tk()

descriptionFrame = Frame(root)

definitionFrame = LabelFrame(descriptionFrame, text="Definition")
definitionScroll = Scrollbar(definitionFrame)
definitionCanvas = Canvas(definitionFrame, width=30, height=4, yscrollcommand=definitionScroll.set)
definitionScroll.config(command=definitionCanvas.yview)
definitionLabel = Label(definitionCanvas, text="n/a")

descriptionFrame.pack()
definitionFrame.pack()
definitionScroll.pack(side=RIGHT, fill=Y)
definitionCanvas.pack(side=LEFT, fill=BOTH, expand=True)
definitionLabel.pack(fill=BOTH, expand=True)

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

我有这个代码.Canvas设置为宽度为30,高度为4,但是当我运行它时,它会忽略Canvas的宽度和高度,而生成的窗口会在Label周围调整大小.我已经尝试pack_propagate(False)在代码中的每一个帧上使用它,但它不会影响任何东西definitionFrame,但是当我在descriptionFrame它上面使用它时会导致一个空窗口.如何创建一个GUI,其中所有框架和窗口的大小均为宽度30和高度4的画布大小?

谢谢.

python tkinter

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

如何处理Python中的长行代码和命令

我试过搜索,但我找不到任何类似于我的情况.我正在编写一个程序,到目前为止,我已经坚持使用一行规则中不超过79个字符.但是我不确定在几种情况下在哪里打破线.

以下是问题领域:

        self.proc.stdin.write('(SayText "%s")\n' % text.replace('\\', '\\\\').replace('"', '\\"'))
Run Code Online (Sandbox Code Playgroud)

对于这种情况,当我在'(SayText"%s")\n'之后断开第一行时,第二行最终为80个字符长.我应该像这样在括号中的某个地方打破第二行吗?

        self.proc.stdin.write('(SayText "%s")\n'
                              % text.replace('\\',
                                             '\\\\').replace('"', '\\"'))
Run Code Online (Sandbox Code Playgroud)

或者最好将整个第三行带到第一个括号的开头,如下所示:

        self.proc.stdin.write('(SayText "%s")\n'
                              % text.replace('\\',
                              '\\\\').replace('"', '\\"'))
Run Code Online (Sandbox Code Playgroud)

另一个例子是:

        filename = tkFileDialog.askopenfilename(filetypes = (("Word list", "*.tldr"), ("All files", "*.*")))
Run Code Online (Sandbox Code Playgroud)

我应该这样做吗?

        filename = tkFileDialog.askopenfilename(filetypes = (("Word list",
                                                              "*.tldr"),
                                                             ("All files",
                                                              "*.*")))
Run Code Online (Sandbox Code Playgroud)

或这个?

        filename = tkFileDialog.askopenfilename(filetypes = (("Word list",
                                                "*.tldr"),("All files", "*.*")))
Run Code Online (Sandbox Code Playgroud)

什么是一个很好的约定?

谢谢.

python pep8 line-breaks

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

作为Java命令行输入的字符串列表(多行)

我正在尝试为学校做作业,我不知道如何处理输入.我在下面提供了一个关于作业背景的链接:

https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B1DkmkmuB-leNDVmMDU0MDgtYmQzNC00OTdkLTgxMDEtZTkxZWQyYjM4OTI1&hl=en

我对如何完成任务所要求的一切有一个大概的想法,但我不确定如何处理输入.

示例输入是:

A0
0
A00
ab000

这给出了一个输出:

树1:
无效!
树2:
高度:-1
路径长度:0
完整:是
后序:
树3:
高度:0
路长度:0
完整:是
后序:一个
树4:
高度:1条
的路径长度:1个
完整:是
后序:BA

我打算用Java做这件事.我的问题是,如果没有在输入文件中输入管道,如何将样本中的多行输入输入Windows cmd.exe行?因为按Enter键只会使用一行输入来运行程序,而不是创建一个新行.此外,由于分配是自动标记的,输入不能是交互式的,那么我如何知道何时停止阅读?

谢谢.

java command-line binary-tree input

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

关于插入空二叉搜索树的试题

我无法解释有关将元素插入二叉搜索树的某个问题。我熟悉前序、后序和中序遍历,但我不熟悉以下问题:

假设我们按顺序将元素 3、5、6、1、2、4、7 插入到最初为空的二叉搜索树中。

如果我只得到一组按该顺序插入的数字,我应该如何将其变成二叉搜索树?3 会是根吗?我会自己平衡其他数字到正确的子树吗?在那种情况下不会有很多解释吗?是否遵循某种约定?

谢谢。

binary-search-tree

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

将float输入到仅处理int的程序中

我有一个程序,但是只要程序要求输入时我输入浮点数,程序就会突然跳过一个步骤并移至最终输出。该程序如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  int a,b,c;
  int i;

  printf("Please enter a number: ");
  scanf("%d", &a);
  printf("Please enter a number: ");
  scanf("%d", &b);

  c = 0; 
  for(i=0; i < b; i++)
    {
    c = c + a;
    } 

  printf("%d x %d = %d\n", a, b, c);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我为输入int a和为float时b,如果for的小数点后的数字b被截断,则程序将按预期输出乘积。但是,当我输入的浮点数时a,程序不会采用第二个数字的值b,而是跳过该步骤并输出的整数版本a x -858993460 = 0

例如:

a =整数,b =浮点数

请输入数字:3
请输入数字:5.6
3 x 5 = 15 …

c floating-point double int

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

有没有办法在Java中满足某个条件时结束递归方法?

当条件满足时,有没有办法突然返回调用下面方法的方法?类似于循环中断的东西.

public void createTree(TreeNode tree) throws IOException {
    if (i >= preorder.length) {
        // Leave recursive method
    } else if (preorder[i] == '0') {
        tree.value = '0';
        tree.left = tree.right = null;
        i++;                
    } else {
        tree.value = preorder[i];
        i++;
        tree.left = new TreeNode();
        createTree(tree.left);
        tree.right = new TreeNode();
        createTree(tree.right);
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

java recursion break

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

PID控制器,用于以速度精确行进

我试图通过发送线性速度的消息来使仿真中的机器人移动精确的距离。现在,我的实现并不能使机器人移动精确的距离。这是一些示例代码:

void Robot::travel(double x, double y)
{
    // px and py are the current positions (constantly gets updated as the robot moves in the simulation)
    // x and y is the target position that I want to go to
    double startx = px;
    double starty = py;
    double distanceTravelled = 0;

    align(x, y);
    // This gets the distance from the robot's current position to the target position
    double distance = calculateDistance(px, py, x, y);

    // Message with velocity
    geometry_msgs::Twist msg; …
Run Code Online (Sandbox Code Playgroud)

c++ distance ros

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

有没有简单的方法可以提高此自旋锁功能的性能?

我正在尝试在我的代码中实现一个自旋锁,但是我基于Wikipedia实现的自旋锁导致了极慢的性能.

int lockValue = 0;

void lock() {
    __asm__("loop: \n\t"
            "movl $1, %eax \n\t"
            "xchg %eax, lockValue \n\t"
            "test %eax, %eax \n\t"
            "jnz loop");
}
Run Code Online (Sandbox Code Playgroud)

有没有办法改善这一点,使其更快?

谢谢.

c inline-assembly spinlock

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

为什么在指向对象的指针上调用方法与在对象本身上调用方法有不同的行为?

我有一些代码,我有一个指向对象的指针.我在该指针上调用一个方法,但在这种情况下该方法的行为是错误的.我尝试在对象本身上调用一个方法,这实际上给出了方法的所需行为.

为什么这会导致不同的行为?

还有一种方法可以在不使用指针的情况下将对象分配给新变量,因为我想要在对象本身上调用方法的行为吗?

谢谢.

编辑:

希望是一个充分的例子:

在Robot类中:

std::vector<ProjectOne::R_ID> Robot::positions;
int Robot::ID = -1;

Robot::Robot(double x, double y)
{
    ++ID;
    robot_ID = ID;
    initialX = x;
    initialY = y;
    // Placeholder. Doesn't actually get used properly atm.
    fWidth = 0.35;
    px = x;
    py = y;

    ProjectOne::R_ID msg;   
    msg.R_ID = robot_ID;
    msg.x = x;
    msg.y = y;
    positions.push_back(msg);

    string robotOdom = "robot_" + int2str(robot_ID) + "/odom";
    string robotVel = "robot_" + int2str(robot_ID) + "/cmd_vel";

    RobotOdometry_sub = n.subscribe<nav_msgs::Odometry>(robotOdom,1000,&Robot::ReceiveOdometry,this);
    RobotVelocity_pub = n.advertise<geometry_msgs::Twist>(robotVel,1000);
    ros::spinOnce(); …
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

在arraylist中查找重复元素

我想知道是否有办法在arraylist中找到重复的元素.对于我正在尝试做的更多上下文,我有一个字符串的arraylist.每个字符串都包含有关MP3文件的信息.他们有一个标题,作曲家,以及由'&'字符分隔的运行时间(例如Friday&Rebecca Black&666).

根据运行时间,arraylist已经被快速排序了.但是,我还需要对arraylist进行排序,这样如果歌曲的运行时间相等,它们应该在标题上按字典顺序排列,然后在作曲家上如果标题相同也是如此.

我希望能够在arraylist中找到重复的运行时间,以便我可以使用该compareTo方法按字母顺序排序,就像我需要的那样.我已经实现的方法getTime,getTitle,getComposer即提取从整体字符串的相关信息.有没有办法可以在一个新的方法中做到这一点alphabetical,或者甚至更好的方法是我可以将它合并到我的快速排序算法中,这样我就不必再搜索排序的arraylist了?

谢谢.

java arraylist duplicates lexicographic

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