小编cev*_*ing的帖子

如何从文件中读取Unicode G-Clef(U + 1D11E)?

G-Clef(U + 1D11E)不是基本多语言平面(BMP)的一部分,这意味着它需要超过16位.几乎所有Java的读取函数都只返回一个charint包含16位.哪个函数读取完整的Unicode符号,包括SMP,SIP,TIP,SSP和PUA?

更新

我已经问过如何从输入流中读取单个Unicode符号(或代码点).我既没有任何整数数组,也不想读一行.

可以构建一个代码点,Character.toCodePoint()但是这个函数需要一个char.另一方面,读取a char是不可能的,因为read()返回一个int.到目前为止我最好的工作是这个,但它仍然包含不安全的演员表:

public int read_code_point (Reader input) throws java.io.IOException
{
  int ch16 = input.read();
  if (Character.isHighSurrogate((char)ch16))
    return Character.toCodePoint((char)ch16, (char)input.read());
  else 
    return (int)ch16;
}
Run Code Online (Sandbox Code Playgroud)

怎么做得更好?

更新2

另一个返回String但仍使用强制转换的版本:

public String readchar (Reader input) throws java.io.IOException
{
  int i16 = input.read(); // UTF-16 as int
  if (i16 == -1) return null;
  char c16 = (char)i16; // UTF-16
  if (Character.isHighSurrogate(c16)) { …
Run Code Online (Sandbox Code Playgroud)

java unicode

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

在Perl中查找标量变量的数据类型

我有一个接受用户输入的功能.输入可以是整数,浮点数或字符串.我有三个重载函数,应根据输入数据的DATA TYPE调用.例如,如果用户输入整数(例如100),则应调用具有整数参数的函数.如果用户输入字符串(例如"100"),则应调用具有字符串参数的函数.

所以我需要找出输入数据的数据类型.使用正则表达式,我能够区分整数和浮点数(因为我只需要找出类型,我不喜欢使用cpan.org提供的库),但我无法弄清楚如何区分字符串中的整数.Perl对待"100"和100对待?有没有办法解决这个问题?

perl

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

如何在Haskell模式下为Emacs评估单个表达式?

在Lisp或Scheme缓冲区中,可以通过按下C-x C-e哪些调用来评估单个表达式eval-last-sexp.但eval-last-sexp仅适用于Haskell中的文字.在Haskell模式下执行相同操作的等效方法是什么?

emacs haskell

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

为什么Sqlite错误:无法在表上创建INSTEAD OF触发器?

我尝试为表上的更新创建一个替代触发器.正常使用的替代触发器是视图,但Sqlite手册说,替代触发器对表也有效.但我得到错误:无法在表上创建INSTEAD OF触发器.我想知道为什么.

我用外键:

PRAGMA foreign_keys = ON;
Run Code Online (Sandbox Code Playgroud)

我有两张桌子.标识符表:

CREATE TABLE id
(
    id      INTEGER PRIMARY KEY AUTOINCREMENT,
    created REAL    NOT NULL DEFAULT CURRENT_TIMESTAMP
);
Run Code Online (Sandbox Code Playgroud)

以及一个引用标识符的表:

CREATE TABLE person
(
    id        INTEGER NOT NULL DEFAULT (last_insert_rowid()) REFERENCES id,
    login     TEXT,
    password  TEXT,
    firstname TEXT,
    lastname  TEXT,
    email     TEXT,
    created   REAL  NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id, created)
);
Run Code Online (Sandbox Code Playgroud)

插入工作正常:

INSERT INTO id DEFAULT VALUES;
INSERT INTO person (login) VALUES ('root');
SELECT * FROM person;
1|root|||||2012-02-28 18:03:45
Run Code Online (Sandbox Code Playgroud)

现在我想定义以下触发器,它将更新转换为插入:

CREATE …
Run Code Online (Sandbox Code Playgroud)

database sqlite triggers

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

ksh脚本,For循环

#!/bin/ksh
#########################     
for i in {1..30} ;do
  echo $i
done
Run Code Online (Sandbox Code Playgroud)

输出是:

{1..30}  
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题?

ksh

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

哪个Java集合允许廉价追加?

我在Java中搜索列表数据结构,允许廉价附加长列表.我尝试使用LinkedList,但我在addAll的文档中发现,迭代器用于附加两个列表.这意味着在操作期间克隆了附加的列表.迭代器遍历整个列表返回每个元素.是否有任何可用的集合在附加两个列表时省略了迭代?

java list

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

如何匿名实例化存储在Java中的Class对象中的抽象类?

如果你有一个抽象类,你可以通过派生一个具体的匿名类来实例化它.这是一个例子:

abstract class A {
     abstract void hello ();
}

A say = new A () { void hello () { System.out.println ("hello"); } }

say.hello(); // -> hello
Run Code Online (Sandbox Code Playgroud)

如果类存储在Class对象中,如何做同样的事情?这是一个例子:

// -*- compile-command: "javac anon.java && java anon"; -*-

class anon
{
    anon () throws Exception {}

    abstract class AbstractClass
    {
        AbstractClass () throws Exception {}
        abstract void id ();
    }

    AbstractClass x = new AbstractClass ()
        {
            void id () { System.out.println ("X"); }
        };

    Class<AbstractClass> abstractclass 
        = (Class<AbstractClass>)Class.forName …
Run Code Online (Sandbox Code Playgroud)

java reflection

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

Bash脚本将带空格分隔标记的字符串转换为数组

我有一个字符串

echo $STRING
Run Code Online (Sandbox Code Playgroud)

这使

first second third fourth fifth
Run Code Online (Sandbox Code Playgroud)

基本上是列表分隔的空格.

我如何获取该字符串并使其成为一个数组

array[0] = first
array[1] = second
Run Code Online (Sandbox Code Playgroud)

等等..

我试过了

IFS=' ' read -a list <<< $STRING
Run Code Online (Sandbox Code Playgroud)

但是当我做的时候

echo ${list[@]}
Run Code Online (Sandbox Code Playgroud)

它只打印出"第一"而没有别的

linux arrays bash shell

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

为什么泛型类型具有相同的签名?

我有以下泛型类:

class Or<A,B>
{
  Or (A a) {}
  Or (B b) {}
}
Run Code Online (Sandbox Code Playgroud)

我尝试编译时为什么会出现以下错误:

Or(A) is already defined in Or
    Or (B b)
    ^

在我看来,两个构造函数共享相同的签名,尽管它们具有不同的泛型类型参数.为什么?以及如何解决这个问题?

更新

我现在明白了这个问题.编译器需要一种方法来区分这两种类型.添加这样的约束对我的用例来说是可以的.所以我想补充一个问题:

如何指定A和B这两种类型可能是不同的?

java generics

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

可以使用哪个CSS选择器来选择处于包装状态的弹性框项目?

我有display:flex3列的行,并且flex-wrap已启用。列之间是手柄divs。包好柱子后,手柄div应当消失。如何使用wrap-state作为CSS选择器来定义弹性项目被包装的情况下的属性?

section {
  display: flex;
  flex-wrap: wrap;
  background-color: lightgray;
}
section * {
  margin: 1ex;
  background-color: white;
}
section * ~ * {
  margin-left: 0;
}
.handle {
  width: 1ex;
  background-color: gray;
}
aside, article {
  flex: 1;
  min-width: 5em;
}
#wide {
  width: 30em;
}
#narrow {
  width: 10em;
}
Run Code Online (Sandbox Code Playgroud)
<section id="wide">
  <aside>
    left
  </aside>
  <div class="left handle"></div>
  <article>
    middle
  </article>
  <div class="right handle"></div>
  <aside>
    right
  </aside>
</section>
<hr>
<section id="narrow"> …
Run Code Online (Sandbox Code Playgroud)

css css-selectors flexbox

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

标签 统计

java ×4

arrays ×1

bash ×1

css ×1

css-selectors ×1

database ×1

emacs ×1

flexbox ×1

generics ×1

haskell ×1

ksh ×1

linux ×1

list ×1

perl ×1

reflection ×1

shell ×1

sqlite ×1

triggers ×1

unicode ×1