小编MC *_*ror的帖子

将字符串转换为Java中的代码

我遇到了一个奇怪的案子.在给定的数据库中,我得到了一个包含VARCHAR字段的记录,所以在我的实体模型中我添加了这个字段,加上getter和setter.现在是乐趣开始的地方:

下面的字符串实际上是方法的主体.它看起来像这样:

if (score <= 0.7) {return 0;} else if (score <=0.8) {return 1;} else if (score <=0.9) {return 2;} else {return 3}
Run Code Online (Sandbox Code Playgroud)

现在 - 我需要将这个字符串变成一个方法,说实话我不知道如何实现这一点.这个实际的方法需要从我得到一个得分为double,并根据给定的分数返回一个整数值.

任何人?


编辑

我知道最简单的方法是不使用这样的解决方案,但这不是我的电话,此外,数据库中有大量这样的记录,每条记录都不同.我们无法解决这个问题.我必须处理这个问题 - 所以请求解决方案的想法,我保证我会做所有的讨厌,并说这是愚蠢的:)
相信我,我,我做,我会抱怨相当一些时间.

java

7
推荐指数
2
解决办法
353
查看次数

Jinja2 - 如何循环json列表?

如何使用jinja2循环json列表?

我有这个json列表,

[{"first_name":"John","last_name":"Smith","user_id":4,"address":null},{"first_name":"Jane","last_name":"Heart","user_id ":5,"address":null},{"first_name":"Dom","last_name":"Robinsons","user_id":6,"address":null},{"first_name":"Pete", "last_name":"手","user_id":7,"地址":null}]

page.html中,

[
    {
        "first_name": "John",
        "last_name": "Smith",
        "user_id": 4,
        "address": null
    },
    {
        "first_name": "Jane",
        "last_name": "Heart",
        "user_id": 5,
        "address": null
    },
    {
        "first_name": "Dom",
        "last_name": "Robinsons",
        "user_id": 6,
        "address": null
    },
    {
        "first_name": "Pete",
        "last_name": "Hand",
        "user_id": 7,
        "address": null
    }
]
Run Code Online (Sandbox Code Playgroud)

结果,

<table>
   {% for user in users %}
   <tr><td>{{ user.first_name }}</td></tr>
   {% endfor %}
</table>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

json jinja2 python-2.7

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

爪哇岛:二十世纪的第一个月(1901年1月1日至2000年12月31日)有多少个星期日下降?

我是编程和java的新手,我正在努力解决以下问题:在二十世纪的第一个月(1901年1月1日至2000年12月31日),有多少个星期日下降?

这是我的代码:

int count, sum = 0;           
for (int i = 1901; i < 2001; i++) {
    LocalDate test = LocalDate.of(i, 1, 1);
    sum += test.lengthOfYear();
}
for (int i = 1; i < sum; i++) {
    LocalDate date1 = LocalDate.of(1901, 1, 1);
    date1 = date1.plusDays(i);
    if (date1.getMonth() == JANUARY && date1.getDayOfWeek() == SUNDAY) {
        count++;
    }
}
System.out.println(count);
Run Code Online (Sandbox Code Playgroud)

如果我打印结果,它似乎工作正常.

我的结果是443,但正确的答案是171.我做错了什么?

谢谢!

java

7
推荐指数
3
解决办法
2773
查看次数

如何在Java中重新加载属性文件

任何人都可以帮助我重新加载属性文件。我有这样的代码

Properties prop = new Properties();
InputStream trackerFileStream = 
    LoadProperty.class.getClassLoader().getResourceAsStream("sample.properties");
prop.load(trackerFileStream);
Run Code Online (Sandbox Code Playgroud)

通过类加载器加载属性文件后,我修改了属性文件。我无法在同一程序执行中获得最新的修改。

谁能建议我如何在不重新执行程序的情况下重新加载属性文件?

java

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

如何在Android中以编程方式加载布局XML文件?

我创建了一个布局(比如my_layout.xml),其中包括两个其他XML布局文件,比如some_layout.xmlanother_layout.xml.my_layout.xml是使用绘制的setContentView(R.layout.my_layout).

现在我有一个带ID的复选框some_checkbox,它在some_layout.xml中定义,我想给复选框一个OnCheckedChangeListenerusing setOnCheckedChangeListener(),就像这样:

CheckBox cb = (CheckBox) findViewById(R.id.some_checkbox);
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    ...
});
Run Code Online (Sandbox Code Playgroud)

但现在NullPointerException抛出了,因为cbnull.我猜那是因为包含的布局some_checkbox(some_layout)没有加载setContentView(R.layout.some_layout).

  • 问题1:为什么?为什么回归发现R.id.some_checkbox nullsome_layout真的可见的.
  • 问题2:如何"加载" some_layout以便我可以捕获some_layout变量,就像我在上面的代码片段中尝试过的那样?

UPDATE

我终于解决了它,使用以下内容,由stealthjong建议:

一种解决方案可能是初始化checkedChangeListener,向可扩展列表视图添加侦听器,以及打开可扩展列表视图的子项时,检查您Checkbox是否是其中一个膨胀的子项,并添加checkedchangeListenerif if.

我创建了一个名为的方法setCheckedChangeListenerToElement(int resourceId, OnCheckedChangeListener listener),它保存给定的resourceId(它是附加监听器的元素的ID)和给定的监听器.一旦inflater调用该方法getChildView(int groupPosition, int childPosition, boolean isLastChild, …

layout android

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

使用SpannableStringBuilder时,为什么我的文本没有显示样式?

我有一个SpannableString对象的问题.

下面是一个简短的例子:

SpannableString spanstr = new SpannableString("Bold please!");
spanstr.setSpan(new StyleSpan(Typeface.BOLD), 0, spanstr.length(), 0);

SpannableStringBuilder sb = new SpannableStringBuilder();
sb.append(spanstr);
sb.append("\n"); // A newline
sb.append("The first line is bold. This one isn't.");

CharSequence cq = sb.subSequence(0, sb.length());
// ^There's no such method to return a SpannableString,
// so I try to return a CharSequence instead.

// And then, at last:
TextView contentView = (TextView) findViewById(R.id.some_id);
contentView.setText(cq);
Run Code Online (Sandbox Code Playgroud)

这个例子试图做的是显示:

请大胆!
第一行是粗体.这个不是.

但问题是:文本的第一行不会以粗体显示.

为什么不这样做呢?

android spannablestring

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

编程实践(一些令人困惑的陈述)

前几天我正在阅读Kernighan和Rob Pike 的编程实践.

在第二章中,在" 搜索"部分,我阅读了一些在我脑海中造成混淆的行.

"没有什么比用于存储静态表格数据的数组更好.编译时初始化使得构造这样的数组变得便宜和容易.(在Java中,初始化发生在运行时,但这是一个不重要的实现细节,除非数组很大. )"

我的问题是,如果用户只在运行时提供数组或变量,并且变量的内存分配在运行时进行,那么在任何语言中如何编译时都可以进行数组或变量的初始化.不知道内存地址如何初始化数组?

java arrays search

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

如何在浏览器中显示PDF文件

在我的servlet中,我使用下面的代码在浏览器中打开PDF文件,但它显示了一个下载对话框.

我做错了什么?

response.setContentType("application/pdf");
out = response.getWriter();
String filepath = "D:/MyFolder/PDF/MyFile.pdf";

response.setHeader("Content-Disposition", "inline; filename=" + filepath + ";");
FileOutputStream fileOut = new FileOutputStream("D:/MyFolder/PDF/MyFile.pdf");

fileOut.close();
out.close();
Run Code Online (Sandbox Code Playgroud)

java servlets

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

在Android中的EditText中键入占位符提示

我有一个EditText字段,用户只能输入六位数字.当EditText聚焦时,它应该提示用户他只能输入六位数字.

想法是以灰色显示剩余的数字,如下所示:

提示剩余数字

当用户输入一个数字时,它看起来像这样:

提示剩余数字

(红色垂直条表示光标.)

光标不应位于两个图像中当前位置的后面; 灰色数字应该只是可见的,不应该是可选的.

所以实际上我想设置占位符文本,但在用户输入时保留占位符文本的一部分.

TextInputLayout从设计支持库中读到了这个类,但我不知道如何实现上述想法.

这该怎么做?

android

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

在Java中对单个流的元素执行多个不相关的操作

如何对单个流的元素执行多个不相关的操作?

说我有List<String>一个文本组成.列表中的每个字符串可能包含也可能不包含某个单词,表示要执行的操作.让我们说:

  • 如果字符串包含'of',则必须计算该字符串中的所有单词
  • 如果字符串包含'for',则必须返回第一次出现'for'之后的部分,产生一个List<String>包含所有子字符串的部分

当然,我可以这样做:

List<String> strs = ...;

List<Integer> wordsInStr = strs.stream()
    .filter(t -> t.contains("of"))
    .map(t -> t.split(" ").length)
    .collect(Collectors.toList());

List<String> linePortionAfterFor = strs.stream()
    .filter(t -> t.contains("for"))
    .map(t -> t.substring(t.indexOf("for")))
    .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

但随后列表将被遍历两次,如果strs包含大量元素,可能会导致性能下降.

是否有可能以某种方式执行这两个操作而不在列表上遍历两次?

java java-stream

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