使用字符串数组中的迭代值替换字符串中的一个字符

时间:2015-11-03 17:33:50

标签: java android string-concatenation

我想使用字符串数组中的迭代值替换字符串中的所有特定字符。

#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中最好的字符串替换方法

2 个答案:

答案 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"