在java中处理文件读写的标准方法是这样的:
try
{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("file.dat"));
oos.writeObject(h);
oos.close();
}
catch (FileNotFoundException ex)
{
}
catch (IOException ex)
{
}
Run Code Online (Sandbox Code Playgroud)
但是我对这段代码感到困扰,因为如果抛出异常,这里可能永远不会关闭文件.当然,我们可以添加一个finally子句并初始化try块外的ObjectOutputStream.但是,当你这样做时,你需要再次在finally块中添加另一个try/catch块...这只是丑陋的.有没有更好的方法来处理这个问题?
如何在PHP中创建和获取Java中的关联数组?
例如:
$arr[0]['name'] = 'demo';
$arr[0]['fname'] = 'fdemo';
$arr[1]['name'] = 'test';
$arr[1]['fname'] = 'fname';
Run Code Online (Sandbox Code Playgroud) 在C中,是以下等价物:
long int x = 3L;(注意L)
和
long int x = 3
他们似乎是一样的.如果是,应该使用哪一个?应该L明确指定吗?
如果它们不同,有什么区别?
我有显示土耳其人物的麻烦,他们在html中以背景中的钻石出现的小问号.
我如何使用iconv来解决这个问题?既然我认为那是最好的选择吧?现在我的页面是utf-8编码的.
我需要支持像这样的人物
ıñş
以及能够将它们插入我的数据库.
谢谢
在我当前的应用程序中,我有显示消息的代码,例如"5个已处理的项目".为了保持短语在语法上正确,即它是否应该是"5 Item"或"5 Items",我使用以下代码:
int numItems = 5;
NSString *myString = [[NSString alloc] initWithFormat:@"%d Item%@ Processed", numItems, (numItems == 1 ? @"" : @"s")];
Run Code Online (Sandbox Code Playgroud)
这个现在工作正常.但我正在本地化我的应用程序,并希望确保我正在翻译应用程序的所有语言中的文本语法正确.我可以这样做:
int numItems = 5;
NSString *myString = (numItems == 1 ?
NSLocalizedStringWithTable(@"%d Item Processed", @"myApp", @"singular version") :
NSLocalizedStringWithTable(@"%d Items Processed", @"myApp", @"plural version"));
Run Code Online (Sandbox Code Playgroud)
但是,并非所有语言都具有相同的复数操作规则!例如,(原谅我在这里非常具体的例子)俄语中,用最后一个数字1结尾的数字修改的名词(即21,31,但不是 11)采用主格,结束于2-4的数字采用了genitive奇异,5+采取属性复数的情况.这将需要更严格的逻辑来处理如何以语法正确的方式复数特定名词,并且该逻辑与英语逻辑不匹配.因此,从理论上讲,我不能在Objective-C代码中使用语法逻辑,而应该在strings文件中使用语法逻辑.有没有办法做到这一点?人们如何为他们的应用翻译动态文本,以使其在语法上保持正确?
iphone localization internationalization localizable.strings ios
在我的代码中,我有条件地启动我的服务:
Intent intent = new Intent(context, MyService.class);
context.startService(intent);
Run Code Online (Sandbox Code Playgroud)
你可以告诉我是否有可能知道我是否已经启动了相同的服务,以便我不开始服务TWICE?
谢谢.
函数是否set::insert保存指向元素或其副本的指针.意思是,我可以执行以下代码,还是必须确保指针不被删除?
int *a;
*a=new int(1);
set<int> _set;
_set.insert (*a);
delete a;
*a=new int(2);
_set.insert (*a);
delete a;
Run Code Online (Sandbox Code Playgroud)
我给出了示例int,但我的真实程序使用了我创建的类.
好的我有一个多选ListView工作正常.我检查联系人的框(保存在String []中)并可以返回值.因为有些人有一堆联系我想创建一个搜索栏,有点像Android手机书的库存.我创建了一个EditText并将其对齐在我的列表上方.我在StackOverflow上找到了过滤代码,它运行得非常好.
我的问题:
当您过滤某些人的名字,并选择名称时,当您从EditText退格或继续键入时,不会保存您选择的名称的正确位置.例如,如果我开始键入"Adam"并进入"Ada"并选择它,如果我退格键入"Carol",则选择"Ada"所处的位置.它收集了"亚当"在点击时所处的位置(比方说2),当列表恢复时,检查位置(2),即使亚当不在那里.我需要一种方法来收集名称..然后当再次恢复或搜索列表时,将检查NAME Adam,而不是之前的位置亚当.除了创建大量数组之外,我绝对没有任何想法,并且可以真正使用一些帮助.下面是我正在使用的一些代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contacts_list);
myListView = (ListView)findViewById(android.R.id.list);
search_EditText = (EditText) findViewById(R.id.search_EditText);
search_EditText.addTextChangedListener(filterTextWatcher);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, ContactsList);
setListAdapter(adapter);
myListView.setItemsCanFocus(false);
getListView().setChoiceMode(2);
myListView.setTextFilterEnabled(true);
myListView.setFastScrollEnabled(true);
myListView.invalidate();
}
private TextWatcher filterTextWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
adapter.getFilter().filter(s);
}
};
Run Code Online (Sandbox Code Playgroud) android android-searchmanager multiple-choice android-listview
我正在循环浏览页面上的所有控件,并在某些条件下将某些类型(TextBox,CheckBox,DropDownList等)设置为Enabled = False.但是我注意到这样一个明显的页面加载循环增加.是否有可能只从Page.Controls对象获取某些类型的控件而不是循环遍历它们?可能是像LINQ这样的东西?
有没有人有一个想法如何在方法/功能Int()或floor()实施?我正在寻找各自的实现,因为以下是abs()功能.
Int Abs (float x){
if x > 0
return x;
else
return -x
}
Run Code Online (Sandbox Code Playgroud)
我正在努力为它找到一个解决方案而不使用模数运算符.