小编dmo*_*nch的帖子

如何使用Scanner停止从标准输入读取多行?

我正在研究一个JAVA赋值应该处理多行输入.指令读作"输入从标准输入读取".

给出了一个示例输入示例:

one 1
two 2
three 3
Run Code Online (Sandbox Code Playgroud)

我不明白上面的示例输入"从stdin读取"是什么意思.

这是我写的一个测试程序,它隔离了我的困惑:

import java.io.*;
import java.util.Scanner;

class Test
{
public static void main(String[] args)
{   
    Scanner stdin = new Scanner(System.in);
    while(stdin.hasNextLine())
    {
        String line = stdin.nextLine();
        String[] tokens = line.split(" ");
        System.out.println(Integer.parseInt(tokens[1]));
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在控制台中运行这个程序时,它会等待我的输入,每当我输入一行时,它就像我期望的那样回复它.所以我想也许上面的样本输入可以通过以这种方式输入3行中的每一行来实现.但是,似乎没有办法结束这一进程.输入3行后,如何终止输入?我尝试按两次输入,但这似乎只是一行只包含换行符,这会导致错误,因为该行不符合它所期望的2令牌格式.

这是控制台交互的样子:

javac Test.java
java Test
one 1
1
two 2
2
three 3
3

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at Test.main(Test.java:13)
Run Code Online (Sandbox Code Playgroud)

我非常感谢你指出我理解中的差距.

java stdin java.util.scanner

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

烧瓶路线模式匹配顺序

鉴于Flask Routes从上到下没有模式匹配,如何处理以下问题?

我有以下路线:

  1. /<poll_key>/close
  2. /<poll_key>/<participant_key>

如果我发出请求http://localhost:5000/example-poll-key/close,Flask将其与模式2匹配,则将字符串'close'指定给<participant_key>URL参数.如何在<poll_key>/close路线前使<participant_key>路线匹配?

python pattern-matching flask

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

非字母字符上的Java字符串拆分

我想沿着非字母字符将String拆分为String数组.例如:

"Here is an ex@mple" => "Here", "is", "an" "ex", "mple"
Run Code Online (Sandbox Code Playgroud)

我尝试将String.split(String regex)方法与正则表达式一起使用"(?![\\p{Alpha}])".然而,这将字符串拆分为

"Here", "_is", "_an", "_ex", "@ample"
Run Code Online (Sandbox Code Playgroud)

(那些强调是强调有一个空间).我想这是因为?!正则表达式运算符是"零宽度"并且实际上是拆分并删除输入字符串中非字母字符之前的零宽度字符.

在分割字符串时,如何完成删除实际的非字母字符?是否存在非零宽度否定运算符?

java regex string split

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

Matplotlib文本边界框尺寸

我想做的事:

我想在matplotlib世界单位(而不是屏幕像素)中获取文本实例的位置和尺寸,以计算和防止文本重叠.

我正在开发Mac OSX 10.9.3,Python 2.7.5,matplotlib 1.3.1.

我尝试过的:

t为文本实例.

  1. t .get_window_extent(渲染器):

    这得到了像素的边界框尺寸,我需要世界坐标(在我的情况下归一化在-1.0和1.0之间).

  2. t ._get_bbox_patch():

    t = ax.text(x, y, text_string, prop_dict, bbox=dict(facecolor='red', alpha=0.5, boxstyle='square'))
    print t._get_bbox_patch()
    
    Run Code Online (Sandbox Code Playgroud)

    当我执行上面的序列时,输出是FancyBboxPatchFancyBboxPatch(0,0;1x1).在我生成的图像中,文本实例使用红色边界框正确渲染,因此输出使我认为FancyBbox已实例化,但在渲染时间之前实际上并未填充实际尺寸.

那么,如何在我用于传递给xy参数的相同坐标系统单元中获取文本实例的边界框的位置和尺寸ax.text(...)

python macos matplotlib

6
推荐指数
2
解决办法
3253
查看次数

将PointLight Info传递给具有three.js的自定义着色器

我想创建一个类似于Aerotwist Tutorial中描述的起伏球体的效果.但是,在教程中,Paul在片段着色器中创建了一个假的GLSL硬编码光 - 而是我想将信息从three.js PointLight实例传递到我的着色器,操纵顶点/法线,然后执行Phong着色.

在对three.js中的场景进行着色时,我对GPU考虑的各种级别的理解如下(例如,坚持使用Phong):

  1. 没有GPU考虑:使用MeshPhongMaterial并且不用担心着色器.这非常简单,但不会让你在GPU方面乱七八糟.
  2. 一些GPU考虑因素:使用ShaderLib Phong着色器.这允许您将着色计算推送到GPU,但由于它们是预先编写的,因此您无法对顶点位置,法线或照明计算进行任何自定义修改.
  3. 完整的GPU管理:使用ShaderMesh并从头开始编写着色器.这为您提供了完全自定义,但也强制您明确传递着色器所需的属性和制服.

Q1:上述理解准确吗?

Q2:有没有办法在2级和3级之间做点什么?我希望能够自定义着色器来混淆顶点位置/法线,但是当一个非常好的着色器包含在three.js中时,我不想编写自己的Phong着色器.

Q3:如果2级和3级之间没有这样的中间地带,我需要进入3级,那么最好的方法是什么呢?我是否将光的位置,强度等作为制服传递,进行顶点/正常修改,然后最后明确写出Phong着色计算?

javascript glsl webgl three.js

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

具有颜色渐变填充的Matplotlib矩形

我想在我的轴实例(ax1)坐标系中具有任意尺寸的任意位置绘制一个从左到右填充渐变颜色的矩形。

在此处输入图片说明

我的第一个想法是创建一个路径补丁,并以某种方式将其填充设置为颜色渐变。但是根据《本报》的报道,是没有办法的。

接下来,我尝试使用颜色条。我创建了一个第二轴线实例AX2使用fig.add_axes([left, bottom, width, height])并增加了一个颜色条到。

ax2 = fig.add_axes([0, 0, width, height/8])
colors = [grad_start_color, grad_end_color]
index  = [0.0, 1.0]
cm = LinearSegmentedColormap.from_list('my_colormap', zip(index, colors))
colorbar.ColorbarBase(ax2, cmap=cm, orientation='horizontal')
Run Code Online (Sandbox Code Playgroud)

但位置参数传递给fig.add_axes()是坐标系中的无花果,并且不与坐标系匹配AX1

我怎样才能做到这一点?

python matplotlib

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

Java Arrays.binarySearch(Object [],int,int,Object)签名无法识别

我正在尝试使用Java API规范中记录的binarySearch方法,但我的IDE(Eclipse(Helios))无法识别签名.

我的课程归结为它的2个数据成员以及我试图调用Arrays.binarySearch的方法:

import java.util.Arrays; // Access Arrays class
public class SortedStringArrayList {
    // member data
    private String[] items;
    private int size;

    // methods
    public int testBinSearch(String item) {
        int index = Arrays.binarySearch(items, 0, size, item);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在方法中编写代码时,Eclipse假定我想要一个不同的签名并告诉我:

Arrays类型中的方法binarySearch(int [],int)不适用于参数(String [],int,int,String)

它建议可用的binarySearch的签名是:

我是Java/Eclipse的新手.谁知道问题是什么?

java eclipse arrays signature binary-search

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

尽管在终端的Vim工作,Colorschemes还没有在gvim上工作

我遇到了以下问题:256色colorschemes在Gvim中不起作用,但它们在终端上的Vim中工作正常.

这个问题发生在我的Ubuntu机器和我的Mac OSX机器上.从我所看到的,这个问题与大多数人遇到的问题相反:通常GVim可以处理任何颜色方案,而人们则会在终端上运行Vim的colorscheme问题.

我有以下.vimrc(我有一个没有任何内容的.gvimrc):

" For Pathogen
execute pathogen#infect()

colorscheme 256-grayvim 

set shiftwidth=3
set tabstop=3
set expandtab

set ruler
set nu

syntax on
set nowrap
Run Code Online (Sandbox Code Playgroud)

当我在终端打开Vim时,256-grayvim工作得很好.当我打开Gvim时,256-grayvim显示为已加载(键入:colorscheme返回256-grayvim)但颜色完全错误 - 它们是默认的白色背景和黑色文本.此外,如果我然后键入:colorscheme 256-grayvim,或通过GVim的编辑菜单选择colorscheme,colorscheme没有变化.

vim ubuntu

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