我正在尝试使用以下格式拆分字符串:
"abc=cde,dfe=lk,f,sss=f,d,s"
我想通过使用第一组字符作为键,第二组字符作为值来在地图中恢复这些值。
例如
abc
,值:cde
dfe
,值:lk,f
sss
,值:f,d,s
因此将这些值拆分为最后出现的“,”。
有什么想法吗?
我尝试过使用regex和Stringtokenizer,但是我无法设法仅恢复最后一次出现的“,”
答案 0 :(得分:1)
您可以使用以下正则表达式(可以进行优化):
,(?=(?:(?!,).)*=)
(请参见Regex101)
这与,
匹配,该,
在下一个=
之前没有后续的import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage, fcluster
from sklearn import cluster, metrics
data = pd.DataFrame({"fromage" : ["fromage1", "fromage2", "fromage3", "fromage4", "fromage5", "fromage6", "fromage7", "fromage8", "fromage9", "fromage10", "fromage11", "fromage12", "fromage13", "fromage14", "fromage15", "fromage16", "fromage17", "fromage18", "fromage19", "fromage20", "fromage21"], "calories" : np.random.uniform(low=100, high=450, size=(21,)), "sodium" : np.random.uniform(low=20, high=450, size=(21,)), "calcium" : np.random.uniform(low=70, high=250, size=(21,)), "lipides" : np.random.uniform(low=20, high=30, size=(21,)), "retinol" : np.random.uniform(low=50, high=120, size=(21,)), "folates" : np.random.uniform(low=1, high=30, size=(21,)), "proteines" : np.random.uniform(low=7, high=20, size=(21,)), "cholesterol" : np.random.uniform(low=100, high=450, size=(21,))})
#CConvertir l'index
data = data.set_index("fromage")
#Créer mes groupes
kmeans = cluster.KMeans(n_clusters=4, init='k-means++', max_iter=300, n_init=10, random_state=0)
kmeans.fit(data)
#index triés des groupes
idk = np.argsort(kmeans.labels_)
#moyenne par variable
m = data.mean()
#TSS
TSS = data.shape[0]*data.var(ddof=0)
#data.frame conditionnellement aux groupes
gb = data.groupby(kmeans.labels_)
#effectifs conditionnels
nk = gb.size()
#MOYENNE DES FACTEURS PAR CLASSE
mk = gb.mean()
#pour chaque groupe écart à la moyenne par variable
EMk = (mk-m)**2
#pondéré par les effectifs du groupe
EM = EMk.multiply(nk,axis=0)
#somme des valeurs => BSS
BSS = np.sum(EM,axis=0)
#variance expliquée par l'appartenance aux groupes pour chaque variable
R2 = BSS/TSS
。
答案 1 :(得分:0)
您需要为此使用正则表达式。
完整代码:
@Field(type => ID!, { name: 'id' })
@Column({ type: '_id', nullable: false, unique: true })
public _id: string;
输出:
public class Test {
public static void main(String args[]) {
String input = "abc=cde,dfe=lk,f,sss=f,d,s";
String[] arrOfStr = input.split(",(?=(?:(?!,).)*=)");
HashMap<String, String> properties = new HashMap<String, String>();
for(int i=0;i<arrOfStr.length;i++) {
String[] temp = arrOfStr[i].split("=");
properties.put(temp[0], temp[1]);
}
System.out.println("Input String : " +input);
System.out.println("\nFinal properties : ");
properties.entrySet().forEach(entry->{
System.out.println("key = " +entry.getKey() + " :: value = " + entry.getValue());
});
}
}
答案 2 :(得分:0)
完整代码:
companion object CREATOR : Parcelable.Creator<SavedState> {
override fun createFromParcel(parcel: Parcel): ResultBean {
return ResultBean(parcel)
}
override fun newArray(size: Int): Array<ResultBean?> {
return arrayOfNulls(size)
}
}
输出:
abc = cde
dfe = lk,f
sss = f,d,s