在Java中将int转换为二进制字符串表示形式的最佳方法(理想情况下,最简单)是什么?
例如,假设int是156.二进制字符串表示为"10011100".
我有一个文本文件,每行都有字符串.我想为文本文件中的每一行增加一个数字,但是当它到达文件的末尾时,它显然需要停止.我曾尝试对EOF进行一些研究,但无法真正理解如何正确使用它.
我假设我需要一个while循环,但我不知道该怎么做.
我不是要求实现拼写检查算法本身.我有一个包含数十万条记录的数据库.我要做的是针对所有这些记录检查表格中某个列的用户输入,并返回具有某个汉明距离的任何匹配(同样,这个问题不是关于确定汉明距离等).当然,目的是创建一个"你是说"的功能,用户搜索名称,如果在数据库中找不到直接匹配,则返回可能匹配的列表.
我试图想出一种方法,在最合理的运行时间内完成所有这些检查.如何以最有效的方式检查用户对所有这些记录的输入?
该功能目前已实现,但运行时速度非常慢.它现在的工作方式是将所有记录从用户指定的表(或多个表)加载到内存中,然后执行检查.
对于它的价值,我使用NHibernate进行数据访问.
如果我能做到这一点或我的选择是什么,我将不胜感激.
我有一个看起来像这样的GridView:
<asp:GridView
ID="GridView1"
AllowPaging="true"
OnRowCommand="RowCommand"
OnPageIndexChanging="gridView_PageIndexChanging"
Runat="server">
<Columns>
...
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" ButtonType="Button" CommandName="ItemExport" CommandArgument='<%# Eval("EXPORT") %>'
Text="Export" runat="server" />
</ItemTemplate>
</asp:TemplateField>
...
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
这是RowCommand
:
protected void RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "ItemExport")
{
// etc.
}
}
Run Code Online (Sandbox Code Playgroud)
单击该按钮根本不会触发RowCommand
事件.但是,RowCommand
当我在GridView的寻呼机中单击页面索引时会触发.
可能重复:
枚举"继承"
我有许多扩展抽象类的类.抽象父类使用一组值定义枚举.一些子类继承父类的枚举值,但某些子类需要枚举值不同.有没有办法以某种方式覆盖这些特定子类的枚举,如果没有,什么是实现我所描述的好方法?
class ParentClass
{
private MyEnum m_EnumVal;
public virtual MyEnum EnumVal
{
get { return m_EnumVal; }
set { m_EnumVal = value; }
}
public enum MyEnum { a, b, c };
}
class ChildClass : ParentClass
{
private MyEnum m_EnumVal;
public virtual MyEnum EnumVal
{
get { return m_EnumVal; }
set { m_EnumVal = value; }
}
public enum MyEnum { d, e, f };
}
Run Code Online (Sandbox Code Playgroud) 我在Ubuntu尝试通过终端运行Java GUI应用程序.当我尝试运行它时,我收到了HeadlessException.下面是堆栈跟踪:
Exception in thread "AWT-EventQueue-0" java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:173)
at java.awt.Window.<init>(Window.java:437)
at java.awt.Frame.<init>(Frame.java:419)
at java.awt.Frame.<init>(Frame.java:384)
at javax.swing.JFrame.<init>(JFrame.java:174)
at gui.ImageViewer.<init>(ImageViewer.java:34)
at displayrunner.DisplayRunner$1.run(DisplayRunner.java:15)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:647)
at java.awt.EventQueue.access$000(EventQueue.java:96)
at java.awt.EventQueue$1.run(EventQueue.java:608)
at java.awt.EventQueue$1.run(EventQueue.java:606)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:617)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Run Code Online (Sandbox Code Playgroud)
我export DISPLAY=:0.0
在运行应用程序之前尝试过,但这没有任何效果.你如何通过Bash运行GUI应用程序?
我在尝试使用ParameterizedThreadStart创建线程时遇到问题.这是我现在的代码:
public class MyClass
{
public static void Foo(int x)
{
ParameterizedThreadStart p = new ParameterizedThreadStart(Bar); // no overload for Bar matches delegate ParameterizedThreadStart
Thread myThread = new Thread(p);
myThread.Start(x);
}
private static void Bar(int x)
{
// do work
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定我做错了什么,因为我在网上找到的例子似乎做了同样的事情.
根据命令行参数,我设置一个文件指针指向指定文件或stdin(用于管道).然后我将这个指针传递给许多不同的函数来从文件中读取.这是获取文件指针的函数:
FILE *getFile(int argc, char *argv[]) {
FILE *myFile = NULL;
if (argc == 2) {
myFile = fopen(argv[1], "r");
if (myFile == NULL)
fprintf(stderr, "File \"%s\" not found\n", argv[1]);
}
else
myFile = stdin;
return myFile;
}
Run Code Online (Sandbox Code Playgroud)
当它指向stdin时,fseek
似乎不起作用.通过这个,我的意思是我使用它,然后使用fgetc
,我得到意想不到的结果.这是预期的行为吗?如果是,我该如何移动到流中的不同位置?
例如:
int main(int argc, char *argv[]) {
FILE *myFile = getFile(argc, argv); // assume pointer is set to stdin
int x = fgetc(myFile); // expected result
int y = fgetc(myFile); // expected result
int z = fgetc(myFile); …
Run Code Online (Sandbox Code Playgroud) 为了让自己更熟悉Android中的内容提供商,我正在制作一个小型剪贴板管理器应用程序.它的核心功能是简单地将您复制的内容添加到要显示的数据库中.我对Android的剪贴板框架有些熟悉,但我不知道该怎么做才能听取复制"事件",知道需要将新项目添加到剪贴板.
为了澄清,我需要能够在用户复制内容时向数据库添加记录.我该怎么做呢?