我想使用字符串数组中的迭代值替换字符串中的所有特定字符。
#include "GLheaders.h"
void drawWorldAxis() {
glBegin(GL_LINES);
glNormal3f(0, 0, 1);
glColor3ub(255, 0, 0);
glVertex3f(0,0,0);
glVertex3f(1,0,0);
glColor3ub(0, 255, 0);
glVertex3f(0,0,0);
glVertex3f(0,1,0);
glColor3ub(0, 0, 255);
glVertex3f(0,0,0);
glVertex3f(0,0,1);
glEnd();
}
void keyboard(unsigned char key, int x, int y) {
glutPostRedisplay();
}
static float eye[3] = {-.1, -.1, 1};
#include <stdio.h>
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(55.0, 1, .1, 10000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
printf("eye at <%f, %f, %f>\n", eye[0], eye[1], eye[2]);
fflush(stdout);
gluLookAt(eye[0], eye[1], eye[2], 0, 0, 0, 0, 1, 0);
drawWorldAxis();
eye[0] += .1;
eye[1] += .1;
glFlush();
glutSwapBuffers();
}
void reshape(int w, int h) {
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(55.0, 1, -1, 10000);
glMatrixMode(GL_MODELVIEW);
glutPostRedisplay();
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE| GLUT_DEPTH);
glutInitWindowSize(400,400);
glutCreateWindow("Tiny Test");
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glEnable(GL_NORMALIZE);
glEnable(GL_DEPTH_TEST);
glutMainLoop();
return EXIT_SUCCESS;
}
我想替换'?'来自样本字符串,其值为args。 新字符串应该看起来像
(rand N)
任何人都可以帮我解决java中最好的字符串替换方法
答案 0 :(得分:3)
看来你有一种误入歧途的做法。您有一个看起来像为预准备语句设计的字符串,该数组是该预准备语句的参数列表。这样使用它。请勿手动替换值。
建议使用预准备语句,而不是使用参数格式化字符串。 您可以获得巨大的好处,例如防止SQL注入,类型验证和性能。
搜索使用预准备语句。您可能需要将参数数组更改为Object[]
,并使用正确的值类型而不是现在的字符串。
答案 1 :(得分:0)
String Sample = " Select * from table A where Id = ? or Id = ?";
String[] sampleSplitted = Sample.split("");
String [] args = new String[]{"12","14"};
String result = "";
int found = 0;
for(int i=0; i < sampleSplitted.length; i++){
String currentPart = sampleSplitted[i];
if(currentPart.equals("?")){
currentPart = args[found];
found++;
}
result = result + currentPart;
}
结果:
" Select * from table A where Id = 12 or Id = 14"