我有一个像这样的字符串:
pet:cat::car:honda::location:Japan::food:sushi
Run Code Online (Sandbox Code Playgroud)
现在:指示键值对,同时::分离对.我想将键值对添加到地图中.
我可以使用以下方法实现:
Map<String, String> map = new HashMap<String, String>();
String test = "pet:cat::car:honda::location:Japan::food:sushi";
String[] test1 = test.split("::");
for (String s : test1) {
String[] t = s.split(":");
map.put(t[0], t[1]);
}
for (String s : map.keySet()) {
System.out.println(s + " is " + map.get(s));
}
Run Code Online (Sandbox Code Playgroud)
但是有一种有效的方法吗?
我觉得代码是低效的,因为我使用了2个String[]对象并且split两次调用了函数.此外,我正在使用t[0],如果没有值t[1],可能会抛出一个ArrayIndexOutOfBoundsException.
我是新手react,redux并且一直在探索它与它的不同之处angular.
我正在尝试做一个简单的登录页面,但我无法达到我想要的效果.从登录表单中获取用户名和密码后,我将其提交如下:
submitHandler(e){
e.preventDefault();
var user = {
name : this.state.username,
password: this.state.password
}
this.props.authenticateUser(user);
browserHistory.push('/home');
this.setState({
username:'',
password:''
})
}
Run Code Online (Sandbox Code Playgroud)
这里authenticateUser是我的reducer中的一个函数(如下所示),它从已经存在的用户列表中检查,然后检查具有属性的状态isAuthenticated:
case 'AUTHENTICATE_USER':
var users = state.userslist;
var payloadUser = action.payload;
for (let i = 0; i < users.length; i++) {
let user = users[i]
if (user.name === payloadUser.name) {
return {...state, isAuthenticated: true };
}
};
return {...state, isAuthenticated: false };
Run Code Online (Sandbox Code Playgroud)
现在,在角度,我只是等待这个调用来完成,并检查该值是否是true或false,并使用导航到主页angular-router. …
我正在学习AngularJS,我想知道如何使用ExpressJS正确地将它与Node连接.
这是我的控制器:
app.controller('view1Ctrl', function($scope, $http) {
$scope.sub = function(desc) {
console.log(desc);
$http.post('/view1', desc).
then(function(response) {
console.log("posted successfully");
}).catch(function(response) {
console.error("error in posting");
})
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的server.js:
app.post('/view1', function(req, res) {
console.log(res.desc);
res.end();
});
Run Code Online (Sandbox Code Playgroud)
我没有使用body-parser.当我在控制器中使用函数时,我不知道如何使用body-parser从html获取表单值.使用正文解析器时,在点击提交时是否从html获取值,或者是从我将表单值作为参数传递的函数中获取值.请告诉我它是如何完成的.
编辑:这是我的HTML:
<form>
<input type="text" ng-model="desc" placeholder="Enter desc" />
<button class="btn btn-primary" ng-click="sub(desc)">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
编辑2: 完整的server.js代码:
var express = require('express'),
http = require('http'),
path = require('path'),
bodyParser= require('body-parser');
var app = express();
app.set('port', 3000);
app.use(express.static(path.normalize(__dirname + '/')));
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); …Run Code Online (Sandbox Code Playgroud) 我有一个登录页面,我用它componentWillReceiveProps来路由到下一页.但state我设置的内容componentWillReceiveProps似乎没有设定.
这是我的componentWillReceiveProps方法:
componentWillReceiveProps(nextProps) {
if (nextProps.isAuthenticated === true) {
browserHistory.push('/home');
} else {
console.log("this.props :::" + JSON.stringify(this.props))
console.log("this.state :::" + JSON.stringify(this.state))
console.log("nextProps :::" + JSON.stringify(nextProps))
this.setState({
errorMessage: nextProps.authenticationError
})
console.log("this.state :::" + JSON.stringify(this.state))
}
}
Run Code Online (Sandbox Code Playgroud)
在console output我得到是这样的:
this.props :::{"authenticationError":null}
this.state :::{"username":"35135","password":"3135","errorMessage":""}
nextProps :::{"isAuthenticated":false,"authenticationError":"Could not find user in DB."}
this.state :::{"username":"35135","password":"3135","errorMessage":""}
Run Code Online (Sandbox Code Playgroud)
即使在设置状态之后,我的状态也没有改变.
请告诉我,我做错了什么.
编辑:我有这个组件ErrorText,它接收errroMessage属性.
<ErrorText errorMsg={this.state.errorMessage}></ErrorText>
Run Code Online (Sandbox Code Playgroud) 我正在处理现有的UI,我需要做一些修改.UI使用freemarker进行模板化.
HTML页面中有一个部分是:
<td>
<#if authRole?? && authRole == 'ADMIN' >
<#if leaf.value??>
<a href="#" data-toggle="modal" class="href-select" data-target="#addPropertyModal" itemprop="${leaf.strValue?html}" >${leaf.name}</a>
<#else>
<a href="#" data-toggle="modal" class="href-select" data-target="#addPropertyModal" itemprop="" >${leaf.name}</a>
</#if>
<#else>
${leaf.name}
</#if>
</td>
Run Code Online (Sandbox Code Playgroud)
在此处单击该leaf.name值将打开一个对话框,其中包含名称和值文本框.对话框的模式是这样的:
<div class="modal fade" id="addPropertyModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Add Property</h4>
</div>
<div class="modal-body">
<div class="input-group input-group-lg">
<span class="input-group-addon">Name</span>
<input type="text" id="newProperty" name="newProperty" class="form-control" placeholder="name">
</div>
<br/>
<div class="input-group input-group-lg">
<span class="input-group-addon">Value</span>
<textarea …Run Code Online (Sandbox Code Playgroud) 我实际上正在编写一个 Windows 脚本,单击该脚本将打开我的默认 Web 浏览器,打开一个页面,输入我的登录详细信息,然后提交表单。
到目前为止我能做的就是用这个打开浏览器:
explorer http:\\outlook.com\website.com
Run Code Online (Sandbox Code Playgroud)
由于我找不到任何说明如何执行此操作的资源,因此我查看了 python 脚本并找到了两个库,即。urllib和webbrowser。我知道这urllib是用于抓取网站。但我不确定如何在网络浏览器中模拟相同的内容。该webbrowser库只有在新选项卡等中打开页面的命令。
请告诉我如何使用 python 或 windows 脚本完成此任务。
编辑:我的用户名和密码保存在我的浏览器中,以便它自动填充。我只想模拟 'ENTER' 按键。
我在我的应用程序中使用Gson,我有几个Java对象,我通过使用GSON将它转换为JSON来呈现给前端.我知道如何使用gson将JSON转换回Java对象.
我有这个用例:当我向GSON提供一个特定的JSON字符串时,我希望它找到从中获取JSON字符串的对象的类型,并给我一个该类型的对象.
使用GSON,只有在fromJson方法中传递Object类时才能返回对象.但无论如何我可以自己gson决定吗?我无法控制另一方生成的对象.
例:
Person person = new Person();
SomeRandomObject obj = new SomeRandomObject();
String personJson = gson.toJson(person);
String anotherJson = gson.toJson(obj);
Run Code Online (Sandbox Code Playgroud)
现在如果我想将它转换回对象,我使用这个:
Person p = gson.fromJson(personJson,Person.class);
Run Code Online (Sandbox Code Playgroud)
但无论如何,我可以得到这样的对象:
Object object = gson.fromJson(anotherJson,*TheCorrespondingObject.class*)
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过尝试使用GSON抛出异常的不同对象的JSON字符串来实现这一点,但我不认为这是正确的方法.
@Scheduled我的应用程序中有一个任务,设置使用CRON并每4小时运行一次.我面临的问题是,CRON应用程序启动后作业不会立即启动,但它只在应用程序启动后4小时启动.
我试图@PostConstruct在任务中使用一个方法来调用它,但是由于未初始化的Spring上下文而导致错误.
请告诉我如何在应用程序部署时立即运行计划任务,然后在部署后每4小时运行一次.
编辑:
我不会使用,@PostConstruct因为我的预定方法取决于其他Bean,当这个PostConstruct方法由于某种原因运行时未初始化.
这是我的样本数据
78|Indonesia|Pamela|Reid|preid25@gravatar.com|147.3.67.193
Run Code Online (Sandbox Code Playgroud)
我希望得到结果
Indonesia
Run Code Online (Sandbox Code Playgroud)
目前我在字符串上使用split并访问该值.但我想用正则表达式.
需要注意的一些条件:数据可能为空数据不包含管道(|)
我想使用正则表达式而不是拆分,因为我认为正则表达式更有效.我希望它尽可能高效的原因是因为源文件是70gb.
编辑:
这是我将使用它的整个代码
def main(argv):
mylist = set();
input_file = open("test.txt", 'r')
for row in input_file:
rowsplit = row.split("|");
if rowsplit[1] !='':
if rowsplit[1] in mylist:
filename= "bby_"+rowsplit[1]+".dat";
existingFile=open(filename,'a')
existingFile.write(row);
existingFile.close()
else:
mylist.add(rowsplit[1])
filename= "bby_"+rowsplit[1]+".dat";
newFile = open(filename,'a')
newFile.write(row);
newFile.close();
else:
print "Empty"
print mylist
Run Code Online (Sandbox Code Playgroud)
我只是对我现在应该使用哪些答案感到困惑:(
我只是希望这段代码很快.而已.
我正在尝试从数据库访问分页结果。按照以下查询:
SELECT * FROM
(
SELECT a.*, rownum r__
FROM
(
SELECT * FROM ORDERS WHERE CustomerID LIKE 'A%'
ORDER BY OrderDate DESC, ShippingDate DESC
) a
WHERE rownum < ((pageNumber * pageSize) + 1 )
)
WHERE r__ >= (((pageNumber-1) * pageSize) + 1)
Run Code Online (Sandbox Code Playgroud)
从这里,我能够实现分页。
我修改了如下查询,以便也获得总计数:
SELECT * FROM
(
SELECT a.*, rownum r__ , count(OrderDate)
FROM
(
SELECT * FROM ORDERS WHERE CustomerID LIKE 'A%'
ORDER BY OrderDate DESC, ShippingDate DESC
) a group by OrderDate …Run Code Online (Sandbox Code Playgroud) 我正在学习RxJava并正在测试从数据库读取数据然后将其发布到队列的场景。我只是对整个过程做了一个样本模拟,但我似乎没有找到Observable我想要的工作,即。异步。
这是我的代码:
package rxJava;
import java.util.ArrayList;
import java.util.List;
import rx.Observable;
import rx.Observer;
import rx.functions.Action1;
public class TestClass {
public static void main(String[] args) {
TestClass test = new TestClass();
System.out.println("---START---");
test.getFromDB().subscribe(new Observer<String>() {
@Override
public void onCompleted() {
System.out.println("Publish complete.");
}
@Override
public void onError(Throwable t) {
System.out.println(t.getMessage());
}
@Override
public void onNext(String s) {
test.publishToQueue(s).subscribe(new Observer<Boolean>() {
@Override
public void onNext(Boolean b) {
if (b) {
System.out.println("Successfully published.");
}
}
@Override
public void onCompleted() { …Run Code Online (Sandbox Code Playgroud) java ×4
python ×2
reactjs ×2
angularjs ×1
asynchronous ×1
express ×1
freemarker ×1
gson ×1
hashmap ×1
html ×1
javascript ×1
jquery ×1
json ×1
node.js ×1
oracle ×1
pagination ×1
react-redux ×1
react-router ×1
redux ×1
regex ×1
rx-java ×1
spring ×1