G-Clef(U + 1D11E)不是基本多语言平面(BMP)的一部分,这意味着它需要超过16位.几乎所有Java的读取函数都只返回一个char或只int包含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) 我有一个接受用户输入的功能.输入可以是整数,浮点数或字符串.我有三个重载函数,应根据输入数据的DATA TYPE调用.例如,如果用户输入整数(例如100),则应调用具有整数参数的函数.如果用户输入字符串(例如"100"),则应调用具有字符串参数的函数.
所以我需要找出输入数据的数据类型.使用正则表达式,我能够区分整数和浮点数(因为我只需要找出类型,我不喜欢使用cpan.org提供的库),但我无法弄清楚如何区分字符串中的整数.Perl对待"100"和100对待?有没有办法解决这个问题?
在Lisp或Scheme缓冲区中,可以通过按下C-x C-e哪些调用来评估单个表达式eval-last-sexp.但eval-last-sexp仅适用于Haskell中的文字.在Haskell模式下执行相同操作的等效方法是什么?
我尝试为表上的更新创建一个替代触发器.正常使用的替代触发器是视图,但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) #!/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)
我的代码有什么问题?
如果你有一个抽象类,你可以通过派生一个具体的匿名类来实例化它.这是一个例子:
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) 我有一个字符串
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)
它只打印出"第一"而没有别的
我有以下泛型类:
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这两种类型可能是不同的?
我有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)